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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁培育 中级黑马   /  2012-4-17 15:28  /  2522 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,在jdk帮助文档里的String类中用这样一个方法家叫indexOf(),他有很多重载方法,其中有两个是indexOf(String str)和indexOf(String str, int fromIndex),就是说参数类型应该是String,可是毕老师在13天第02节视频里用这两个方法时传入的是char类型的参数(因为毕老师用的是单引号而不是双引号),但没有报错而且正确运行了,为什么呀?难到是单引号可以表示字符串?

5 个回复

倒序浏览
int indexOf(int ch)
          返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex)
          返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
其实是用的上面两个重载方法,char和int在ASCII编码中是对应的。
回复 使用道具 举报
字符型数据 是按编码对应的二进制存储的,
所以 'a'  ==  97 ==  61(hex)  是一样的,
你自己试试int ch = 'a' 打印一下就知道了
回复 使用道具 举报
这里调用的是 indexOf(int ch)  方法。在java中,字符型数据和int型数据可以通过Unicode 码相互转换。
这是我写的一个例子,希望对你有用:

  1. public class StringTest {

  2. public static void main(String[] args){

  3. function('a');
  4. }

  5. public static void function(int ch){

  6. String str = "this is a string !";
  7. System.out.println(str.indexOf(ch));
  8. }
  9. }
  10. /*输出:
  11. * 8
  12. */
复制代码
回复 使用道具 举报
张卯 发表于 2012-4-17 16:02
int indexOf(int ch)
          返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, i ...

是不是说如果传入的是一个字符型的数据编译时会自动变为int型
回复 使用道具 举报
袁培育 发表于 2012-4-17 20:02
是不是说如果传入的是一个字符型的数据编译时会自动变为int型

嗯~对头~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马