黑马程序员技术交流社区

标题: 关于String类,lastIndexOf()方法的疑问... [打印本页]

作者: 折纸时代    时间: 2012-12-5 16:17
标题: 关于String类,lastIndexOf()方法的疑问...
本帖最后由 司懿卓 于 2012-12-22 10:42 编辑

程序代码:
程序代码:
public class StringTest
{
        public static void main(String[] args)
        {
                char ch = '5';
                String str10 = "0015324556";
                System.out.println(str10.lastIndexOf(ch));
                System.out.println(str10.lastIndexOf(ch, 7));
        }
}

上面是String类lastIndexOf()方法..
API上的解释是:
lastIndexOf(int ch, int fromIndex)
从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。


但是,实际输出结果貌似是截止指定位置之前,该字符串出现的位置索引. 而不是从指定位置向后搜索..
上面代码指定位置索引是7, 输出结果位置7之前最后出现的char '5', 也就是位置在3!  
该方法的作用难道不是截止指定位置之前,该字符最后一次出现的位置么?
---------------------------------------------------------------------------------
还是按照实际结果来的好...

作者: 坚持远方    时间: 2012-12-5 16:25
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
他是反向索引的
作者: 魏秀盛    时间: 2012-12-5 16:46
Java核心技术对String的lastIndexOf(String str,int fromIndex)的解释是:返回与字符串str匹配的最后一个字串的开始位置,这个位置是从原始字符串尾端或者fromIndex开始计算,你代码中用的就是这个方法,
你从str10的尾部开始数,与5匹配的最后一个子串的开始位置就是索引7
作者: 折纸时代    时间: 2012-12-22 10:42
谢谢楼上两位朋友了..  
作者: 罗海清    时间: 2012-12-22 11:29
本帖最后由 罗海清 于 2012-12-22 11:30 编辑

1、是从索引7之前的字符串,但是要包括索引7的字符。
2、也就是 "00153245“这个东东,那ch的最后一个位置,也就是索引7了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2