【发布时间】:2012-08-08 21:34:46
【问题描述】:
我需要比较单个字符和字符数组,看看数组是否有那个字符。
我当前的代码如下所示:
public boolean isThereChar(char[] chaArray, String chr){
boolean bool = false;
for(int i=0; i < chaArray.length; i++)
{
if(chr.equals(chaArray[i])){
bool = true;
}
}
return bool;
}
编辑备注:
真的很抱歉让您感到困惑!我只是一个 Java 初学者 =/
基本上我正在用 GUI 编写小型刽子手游戏。
我的程序读取文本文件并随机选择玩家必须猜测的单词,然后以这样的隐藏方式打印出来:_ _ _ _ _
在这种情况下,我希望玩家输入字符或字符串(人们可以猜出整个单词或只猜一个字母)
然后我希望我的程序获取那个字母或字符串并与我的隐藏词进行比较
以下代码选择单词并将其隐藏:
public String pickWord(){
String guessWord = (wordsList[new Random().nextInt(wordsList.length)]);
return guessWord.toLowerCase();
}
//Hides picked word
public char[] setWord(){
char[] word = new char[pickWord().length() * 2];
for (int i = 0; i < word.length; i+=2) {
word[i] = '_';
word[i + 1] = ' ';
}
return word;
}
然后人们输入他猜想用以下代码编程的字符:
public void actionPerformed(ActionEvent e) {
String action = e.getActionCommand();
if (action == "Guess Letter"){
inputChar = JOptionPane.showInputDialog("Please enter letter (a-z)");
if (inputChar.length() > 1){
GuessedLetters glr = new GuessedLetters(inputChar);
glr.setInString(inputChar);
//For testing purposes
System.out.println("This is String: " +glr.getInString());
}else{
GuessedLetters glr = new GuessedLetters(inputChar);
glr.setInChar(inputChar);
//For testing purposes
System.out.println("This is Char: " +glr.getInChar());
}
}
最后我想把输入的那个字符和我的字符数组进行比较,这是我的隐藏词:
public boolean isThereChar(char[] array, String str){
return isThereChar(array, str.charAt(0));
}
public boolean isThereChar(char[] array, char c){
for(int i=0; i<array.length; i++){
if (array[i] == c) return true;
}
return false;
}
我想检查我的代码返回了什么(真或假),但我一直没有这样做。 (现在我正在尝试在我的主类中调用方法来检查它,如果您能给我提示如何操作,请告诉我。)
【问题讨论】:
-
但您正在比较单个字符串。没有一个字符。
-
并且函数返回字符串。不是字符数组
-
请提供更多代码,此方法对 NPE 提供的代码不够
-
你能在你使用
isThereChar()的地方贴一些代码吗? -
您正在与整个数组进行比较。不是元素方面的
标签: java arrays comparison char