当前位置: 代码迷 >> J2SE >> 求解一个很简单的有关问题
  详细解决方案

求解一个很简单的有关问题

热度:100   发布时间:2016-04-24 12:25:56.0
求解一个很简单的问题
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)介绍就会明白了。重点红色部分
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
------解决方案--------------------
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
------解决方案--------------------
探讨

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
  相关解决方案