如果我想使用String.charAt(int i)
检查字符串中的每个字符,是否每次从开始计数或自动转换为数组并直接获取charAt
索引?
如果我按String.toCharArray()
创建一个char数组然后按索引遍历数组会更有效吗?
我可以在JavaDoc中查看这个吗?在哪里?
答案 0 :(得分:17)
JRE主要是开源的。您可以下载zip文件here或使用grepcode等网站在线浏览。
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
答案 1 :(得分:0)
如果我想使用String.charAt(int i)检查String中的每个字符, 它是从开始算起还是将其转换为数组 自动并直接获取charAt索引?
在内部,String
具有一个字符数组value
。因此,每次尝试使用i
在位置charAt(i)
处获取字符时,都会在数组i
中的索引value
处获得一个值。
如果我通过创建一个char数组会更有效 String.toCharArray(),然后按索引遍历数组?
否,因为String.toCharArray()
将创建另一个字符数组并将value
的内容复制到其中,所以不会。如上所述,使用charAt()
获取字符只是按数组中的索引读取值。
我可以在JavaDoc中进行检查吗?在哪里?
是的,可以。例如,对于 jdk7 ,您可以检查String
类here的实现。