任何人都可以告诉我,我在哪里可以找到java内置String方法的逻辑,如length()
,tocharArray()
,charAt()
等...我试过反编译{ {1}}但他们没有发现任何逻辑。
我想要一个代码来计算字符串的字符数而不使用任何内置的String类但是我无法破解如何在不使用String内置方法的情况下将String分解为字符集的想法。
例如String.class
如何将此String转换为
String str = "hello";
这不是任何家庭作业......
请帮忙 带着敬意, 人士Himanshu
答案 0 :(得分:1)
答案 1 :(得分:0)
我总是使用http://grepcode.com。它通常包含我正在寻找的方法/对象的源代码。 这是GC类String String.length()
编辑: 至于你的第二个问题,如何计算字符串长度。我会使用String.toCharArray()。我希望你能计算一个数组的长度。
答案 2 :(得分:0)
整个字符串数据保存在私人字符array
字段中。
length()
只是:
public int length()
{
return this.value.length;
}
并且charAt(int)
并不复杂得多:
public char charAt(int paramInt)
{
if ((paramInt < 0) || (paramInt >= this.value.length)) {
throw new StringIndexOutOfBoundsException(paramInt);
}
return this.value[paramInt];
}
您正在寻找分离字符串字符的方法是toCharArray()
如果您想要装饰.class
个文件,请尝试使用:http://jd.benow.ca/
它有GUI应用程序和Eclipse IDE插件。
答案 3 :(得分:0)
您可以查看OpenJDK源代码online。确保您正在查看正确版本的代码(库版本和修订版)。
例如,这是jdk8的toCharArray()
代码:
public char[] toCharArray() {
// Cannot use Arrays.copyOf because of class initialization order issues
char result[] = new char[value.length];
System.arraycopy(value, 0, result, 0, value.length);
return result;
}
这是charAt(int index)
:
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
您可以找到String
类here的源代码。
答案 4 :(得分:0)
您不能使用String
而不直接或间接使用其方法。例如,您可以使用charAt(int index)
迭代字符串字符或创建StringBuilder(String s)
(在内部调用String.length()
)。