为什么java.lang.String的indexOf方法要用32位的int去接收16位的char?不是浪费资源吗?

 我来答
ldzywxj
2016-09-28 · TA获得超过107个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:61.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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式