使用toCharArray()生成Java中的垃圾的字符串文字

Dee*_*eet 0 java string char literals garbage

我想创建一个字母表的char数组.我看了这篇文章:

更好的方法来生成字母表中所有字母的数组

这说:

char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();

所以在我的代码中我有:

public class Alphabet {

private char[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();

public String availableLetters(){

    return letters.toString();
   } 

}
Run Code Online (Sandbox Code Playgroud)

当我从main()和printit调用函数availableLetters()到控制台时,它输出这个垃圾:

[C@15db9742

我究竟做错了什么?

das*_*ght 5

阵列是正确的,问题是你没有正确打印它.

如果您一次打印一个字符数组,您将得到正确的结果:

for (char c : letters) {
    System.out.print("'" + c + "' ");
}
Run Code Online (Sandbox Code Playgroud)

演示

不幸的是,Java标准类库没有toString()为数组提供有意义的覆盖,给那些不熟悉该语言的程序员带来了很多麻烦.