为什么java.lang.String的indexOf方法要用32位的int去接收16位的char?不是浪费资源吗?
1个回答
展开全部
indexOf返回的是int类型啊,即返回字符搜索到的索引位置,如果没有找到返回-1
追问
请看清题目?我问的不是方法怎么用,而是这个方法的参数列表indexOf(int ch)里的参数为什么要定义成int去接收一个char,用32字节的去接收16字节的不是浪费资源吗?
追答
jdk帮助文档有以下内容:
public int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。如果在此 String 对象表示的字符序列中出现值为
ch 的字符,则返回第一次出现该字符的索引(以 Unicode 代码单元表示)。对于 0 到 0xFFFF(包括 0 和
0xFFFF)范围内的 ch 的值
char一定是一个字节,至少8位。通常实现中是8位。最大值还要看是不是有符号,这个由实现定义。对于8位的char,若有符号,最大127,否则最大255。
而上面的字符ch的范围可以到0xFFFF即65535。不是普通意义上的char所表示的范围。
字符都是对应着一个整数的,所以用int而不用char。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询