黑马程序员技术交流社区

标题: 不太明白String中的一个方法 [打印本页]

作者: 刘艳伟    时间: 2012-11-30 21:13
标题: 不太明白String中的一个方法
本帖最后由 刘艳伟 于 2012-12-3 09:29 编辑

在String中有一个方法

indexOf(int ch)
          返回指定字符在此字符串中第一次出现处的索引。
  
  里面说指定字符,字符应该是char型的,为什么用int型呢?

还有
lastIndexOf(int ch)
          返回指定字符在此字符串中最后一次出现处的索引。

  这个方法也是如此,不太明白为什么这样定义类型。

作者:     刘如洁    时间: 2012-11-30 21:23
int indexOf(String str)   返回指定子字符串在此字符串中第一次出现处的索引。
你传入字符的话,就是用的这种
作者: 张钧杰    时间: 2012-11-30 21:34
本帖最后由 张钧杰 于 2012-11-30 21:37 编辑

在String中有一个方法

indexOf(int ch)
          返回指定字符在此字符串中第一次出现处的索引。
  
  里面说指定字符,字符应该是char型的,为什么用int型呢?

还有
lastIndexOf(int ch)
          返回指定字符在此字符串中最后一次出现处的索引。

  这个方法也是如此,不太明白为什么这样定义类型。


public class Test11 {
        public static void main(String[] args) {
                String s= "sdfsdoiwr";
                int a = s.indexOf("f");
                System.out.println(a);
        }

}
经测试没问题,为什么传入(int ch) 这里的ch表示传入的字符然后强转 成 int 型。如(int  'a')等价于(int 97)因为计算机里面的都是二进制运算的,
作者: tfy    时间: 2012-11-30 23:27
int 索引指的是字符串数组的下标是int整形
作者: 冯盼    时间: 2012-11-30 23:35
本帖最后由 yunhaitian 于 2012-11-30 23:37 编辑

此处的int型指的是字符的ASII码。例如:
String str = "edabc";
System.out.println(str.indexOf(97));
打印的为:2

lastIndexOf(int ch) 这一个和indexOf(int ch)用法一样,只不过这个是从后面开始查找。




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