【发布时间】:2013-08-21 11:28:28
【问题描述】:
我正在尝试查看两个 char 数组是否相等,但是由于某种原因,它们似乎从未正确读取为等于 Java。我很确定这可能与我对 Arrays.equals() 方法缺乏了解有关,所以如果有人愿意解释 Arrays.equals() 在数组中看到的内容,那就太好了(从我的角度来看)从一个简单的谷歌搜索中可以看出,它似乎检查了数组中有多少元素,然后检查了内容,但我对该方法在元素中查看的内容感兴趣,例如大写字母是否使其不相等)
因为这很可能只是错误的代码,这里是我的代码:
int count = 0;
Highscore words = new Highscore();
String word = words.getWord();
word = word.toUpperCase();
char guess;
for(int i = 0; i<word.length(); i++)
{
charwo[count] = word.charAt(i);
charda[count]= '_';
count++;
}
int guesses =7;
while(guesses != 0 || !Arrays.equals(charwo, charda))
{
System.out.println("");
for(int l=0; l<count; l++)
{
System.out.print(" "+charda[l]);
}
guess = JOptionPane.showInputDialog("Enter letter ").charAt(0);
if(word.toUpperCase().contains(String.valueOf(guess).toUpperCase()))
{
for(int k = 0; k<word.length(); k++)
{
if(String.valueOf(guess).toUpperCase().equals(String.valueOf(charwo[k]).toUpperCase()))
{
charda[k]=charwo[k];
}
}
}
else
{
guesses = guesses-1;
System.out.println("guesses left "+guesses);
}
}
}
【问题讨论】:
-
explain what Arrays.equals() looks- 查看 Arrays 类的源代码 -
如果你想要不区分大小写的相等,那么使用
equalsIgnoreCase。您可以使用String构造函数从char[]创建字符串。