0

学校で正しい答えを推測するための単純な Java プログラムをコーディングしていましたが、それを家に持ち帰ったときにエラーが発生しました。

最初に TerminalIO.KeyboardReader を java.util.Scanner に変更しましたが、今ではターミナルから実行すると、「比較できない型: java.lang.String および int」が返されます。

何か助けはありますか?本当に混乱しています。

コード:

import java.util.Scanner;

import java.util.Random;

public class guess { 

       public static void main(String [] args) {
           Scanner keyboard = new Scanner(System.in);
           Random generator = new Random();
           System.out.println("I am thinking of a number from 1 to 10.");
           System.out.println("You must guess what it is.");
           System.out.print("Enter a guess: ");
           int randomNumber = generator.nextInt(10) + 1;
           String x = keyboard.nextLine();
           int guessNum = 1;
           while (x != randomNumber) {
                  System.out.println("Guess again!");
                  x = keyboard.nextLine();
                  guessNum ++;
                }
                System.out.println("RIGHT!");
                System.out.println("You got it correct in " +guessNum + " guesses.");

}

}

4

2 に答える 2

5

int と String を比較することはできません。

あなたはこれを行うことができます:

int someInt = 6;
String someString = "6";
String intAsString = Integer.toString(someInt);

if (someString.equals(intAsString)) {
    System.out.println("Yay");
}

次のように文字列を数値に変換できます。

int someInt = 6;
String someString = "6";
try {
    int stringAsInt = Integer.parseInt(someString);
    if (stringAsInt == someInt) {
        System.out.println("Yay");
    }
}
catch (NumberFormatException nfe) {
    System.out.println("String is not an integer");
}
于 2012-11-16T23:30:44.127 に答える
1

String を int と比較しています (これは互換性のない型です)。

int を文字列に変換して比較します

       while (!(x.equals(Integer.toString(randomNumber)))) {
于 2012-11-16T23:30:23.787 に答える