java内置方法的逻辑

时间:2015-08-19 08:50:35

标签: java string

任何人都可以告诉我,我在哪里可以找到java内置String方法的逻辑,如length()tocharArray()charAt()等...我试过反编译{ {1}}但他们没有发现任何逻辑。 我想要一个代码来计算字符串的字符数而不使用任何内置的String类但是我无法破解如何在不使用String内置方法的情况下将String分解为字符集的想法。 例如String.class 如何将此String转换为

String str = "hello";

这不是任何家庭作业......

请帮忙 带着敬意, 人士Himanshu

5 个答案:

答案 0 :(得分:1)

JDK提供内置库源代码。

JDK文件夹将包含src.zip,其中包含内置库的源代码。

enter image description here

enter image description here

答案 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];
}

您可以找到Stringhere的源代码。

答案 4 :(得分:0)

您不能使用String而不直接或间接使用其方法。例如,您可以使用charAt(int index)迭代字符串字符或创建StringBuilder(String s)(在内部调用String.length())。