単一の文字を文字配列と比較して、配列にその文字があるかどうかを確認する必要があります。
私の現在のコードは次のようになります。
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を使って小さなハングマンゲームを書いています。
私のプログラムはテキストファイルを読み取り、プレーヤーが推測する必要のある単語をランダムに選択し、次のように非表示で出力します。_ _ _ _ _
この場合、プレーヤーに文字または文字列を入力してもらいます(人は単語全体または1文字だけ)
次に、プログラムでその文字または文字列を取得して、隠された単語と比較します
次のコードは単語を選択して非表示にします。
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;
}
コードが何を返すか(trueまたはfalse)を確認したいのですが、失敗し続けます。(現在、メインクラスのメソッドを呼び出してチェックしようとしています。それ以外の方法のヒントを教えていただければ、お知らせください。)