A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 折纸时代 中级黑马   /  2012-12-5 16:17  /  1914 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 司懿卓 于 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!  
该方法的作用难道不是截止指定位置之前,该字符最后一次出现的位置么?
---------------------------------------------------------------------------------
还是按照实际结果来的好...

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
他是反向索引的

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
Java核心技术对String的lastIndexOf(String str,int fromIndex)的解释是:返回与字符串str匹配的最后一个字串的开始位置,这个位置是从原始字符串尾端或者fromIndex开始计算,你代码中用的就是这个方法,
你从str10的尾部开始数,与5匹配的最后一个子串的开始位置就是索引7

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
谢谢楼上两位朋友了..  
回复 使用道具 举报
本帖最后由 罗海清 于 2012-12-22 11:30 编辑

1、是从索引7之前的字符串,但是要包括索引7的字符。
2、也就是 "00153245“这个东东,那ch的最后一个位置,也就是索引7了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马