int[] yc = new int[10];
yc[0]=0;
String line="~abc~123";
for(i=0;i<(line.length());i++)
{
yc[i]=line.indexOf("~",yc[i]+1);
System.out.println("这是第yc["+i+"]:"+yc[i]);
}
为什么都返回的是4?
int[] yc = new int[10];
yc[0]=0;
String line="~abc~123";
for(i=0;i<(line.length());i++)
{
yc[i]=line.indexOf("~",yc[i]+1);
System.out.println("这是第yc["+i+"]:"+yc[i]);
}
为什么都返回的是4?
yc[0]=0
在你的循环中
i=0时
yc[0]=line.indexOf("~",yc[0]+1);
已经把第一个"~"跳过了
所以返回的是下一个匹配的位置 4
indexOf(char,postion)从指定位置开始查找第一个与之匹配字符
你可以看到你的yc[0]=0;
所以你的yc[0]+1=1;
你在字符串String line="~abc~123";的第一个位置开始,由于字符的位置是从0开始数,所以你的1位置是a
那么从1开始的第一个~符号是在4的位置,所以返回的是4