Java中查找字符串indexof()方法是怎么计算起始位置的

Java中的查找字符串indexof()方法中,书上介绍说在字符串 The piano 中,文本piano的起始位置为3。中间的空格不算是占用一个位置么?如果是这样的话 和abc abc abc 和 a bca bca bc查找abc的返回值就一样了么

返回指定子字符串在此字符串中 第一次 出现处的索引。空格是字符,当然要算上.

注意: 索引是从0开始的

比如那那个字符串"The piano" T的索引是0, p的索引是3

"abc abc abc ".indexOf("abc") = 0;
"a bca bca bc".indexOf("abc") = -1; //找不到 答案补充 不好意思, 我的回答下面这句话是错误的

比如那那个字符串"The piano" T的索引是0, p的索引是3

正确的应该是

比如那那个字符串"The piano" T的索引是0, 空格的索引是3, p的索引是4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-26
int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1
eg:String str="a2dfcfar1bzvb";
System.out.println(str.indexOf(97,2));

看这个例子,输出:6
a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到就输出-1!(java中位置第一个从0开始)
String.indexOf函数用法小结
1. indexOf的参数是String, startIndex: Number;
indexOf的返回值为int,
2. Function indexOf 包含如下几个格式:
1). Strng.indexOf(substring) //搜索String中的substring,默认从0位开始;
2). String.indexOf(substring, int m) //搜索String中的substring, 默认从第m位开始;
public class Hehe
{

int i;
int x;
String ip= null;
String input1 = null;
String input2 = null;
public void main(String args[]){
ip = "126.168.1.1";
i = ip.indexOf('.');
x = ip.indexOf('.',i+1);
input1 = ip.substring(0,i);
input2 = ip.substring(i+1, x);

System.out.println("the input1 is "+input1);
System.out.println("the input2 is "+input2);
}
}
结果是
the input1 is 126
the input2 is 168
第2个回答  2013-04-19
不是的,空格也是一个字符的位置,所以你给的
abc abc abc---->查找abc 返回0
a bca bca bc---->查找abc 返回-1 即没有

返回的值是第一次出现该值得 下标
第3个回答  2013-04-18
您好,提问者:
indexOf("a")是从字符串的0个位置开始查找的。
比如你的字符串:"abca",那么程序将会输出0,之后的a是不判断的。本回答被网友采纳
第4个回答  2013-04-19
空格是算一个字符的,NO,你背后的一个查找ABC,查找不出来..返回值为NULL好象!忘记了,好长时间没用indexOf了
相似回答