java - 使用 toCharArray() 的字符串文字在 Java 中产生垃圾

标签 java string char literals garbage

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

Better way to generate array of all letters in the alphabet

其中说道:

char[] 字母表 = "abcdefghijklmnopqrstuvwxyz".toCharArray();

所以在我的代码中我有:

public class Alphabet {

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

public String availableLetters(){

    return letters.toString();
   } 

}

当我从 main() 调用函数 availableLetters() 并将其打印到控制台时,它会输出以下垃圾:

[C@15db9742

我做错了什么?

最佳答案

数组是正确的,问题是您没有正确打印它。

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

for (char c : letters) {
    System.out.print("'" + c + "' ");
}

demo

不幸的是,Java 标准类库没有为数组提供有意义的 toString() 重写,这给刚接触该语言的程序员带来了很多麻烦。

关于java - 使用 toCharArray() 的字符串文字在 Java 中产生垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36950654/

相关文章:

java - java中的x++和++x有区别吗?

在 C 中创建一个新字符串以在大型库 (GLib) 中使用,而不使用 fprintf

java - 将字符串转换为日期(复杂时区)

c - C程序中的"Array subscript is not an integer"

java - 在 Java 中访问嵌套列表数组时遇到问题

java - 如何解决 'Error loading class com.amazonaws.lambda.demo.LambdaFunctionHandler: javax/mail/MessagingException'?

java - 从 ServletContext 资源解析 XML 文档时出现 IOException [/WEB-INF/spring-dispatcher-servlet.xml]

java - 如何使用正则表达式验证字符串必须以字母开头,所有其他字符在java中可以是字母/数字/空格

string - 如何在Elixir中循环遍历字符串中的每个字符?

c++ - Char 到 int8_t 的转换给出了意想不到的结果?