String str="mingrikeji";
rs=str.lastIndexOf('i', 4);
System.out.println("从第5个字符后,字符i最后一次出现的位置是:"+rs);
此条执行结果为什么是1啊?
lastIndexOf(ch,startIndex)
不是按指定的搜索起点,搜索指定字符最后一次出现的位置吗?
"mingrikeji"
第五个是r
然后以r为起点 之后的为"ikeji"
i最后一次出现的位置怎么是1啊?
------解决方案--------------------
lz看看JDK中String.lastIndexOf(int, int)介绍就会明白了。重点红色部分
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
------解决方案--------------------
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
------解决方案--------------------
------解决方案--------------------
1楼正解
- Java code
////如果你想实现那种功能,自己写一个方法public class TestLastIndexOf { public static void main(String[] args) { String str="mingrikeji"; int position =lastIndexOf( str ,'i', 4); System.out.println("从第5个字符后,字符i最后一次出现的位置是:"+ position); } //返回:从str的第i个字符开始,字符c最后出现的位置 public static int lastIndexOf(String str , char c , int i){ if(str == null ||i<0 || i>=str.length()) return -1; for(int j=str.length()-1; j>=i;j--) { if(str.charAt(j) == c) return j; } return -1; }}/*output:从第5个字符后,字符i最后一次出现的位置是:9*/
------解决方案--------------------
这个函数的名称叫的也不错呀。last最后的意思。
建议楼主看API