gpt4 book ai didi

java - 为什么我在 Eclipse 控制台和调试器中都看不到 Java char 数组中的内容?

转载 作者:行者123 更新时间:2023-12-01 19:35:39 26 4
gpt4 key购买 nike

我无法将字符数组打印到 Eclipse 控制台,也无法在 Eclipse 中调试时查看数组内容。我编写了一个程序,使用数组从字符串返回第一个非重复字符索引。该程序工作非常简单,但我发现很有趣的是,在操作/调试程序时我看不到 char 数组的内容。 SOP 语句打印 null OR \u0000。如何在下面的程序中查看数组“a”的实际内容?

public static int getFirstNPCv2 (String s) {
char a[] = new char[26];
s=s.toLowerCase();
for (char c : s.toCharArray()){
a[c - 'a']++;
//System.out.println(a[c - 'a']);
}
System.out.println(a);
for (char c : s.toCharArray()){
if(a[c - 'a'] == 1){
return s.indexOf(c);
}
}
return -1;
}

getFirstNPCv2("titanic") 返回 3,这是正确的,但为什么我看不到数组 'a' 的内容

最佳答案

这是因为您的 char 数组中没有包含任何有意义的字符。您实际上在 char 数组中保存了数字。您创建了新的 char 数组,其元素的初始值为 0。

char a[] = new char[26];

稍后,如果该数组的某些元素与输入字符串中包含的字符索引匹配,您将增加这些元素:

for (char c : s.toCharArray()){
a[c - 'a']++;
//System.out.println(a[c - 'a']);
}

不过,您的 char 数组不包含任何有意义的字符。它将包含值为 0,1,2,3... 的元素,具体取决于您的输入字符串,并且这些值不代表任何可读的字母或数字。但这并不妨碍您打印存储在 char 数组 a 中的值。您可以这样打印它们:

    for(int i = 0; i<a.length; i++)
{
int b = a[i];
System.out.print(b);
}

我认为对于你的方法,你应该使用 int 数组。快乐编码。

关于java - 为什么我在 Eclipse 控制台和调试器中都看不到 Java char 数组中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57704422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com