1. ホーム
  2. java

[解決済み] keyboard.nextLine()とStringでユーザー入力ができない(Java)

2022-01-31 07:05:56

質問

最近、空き時間を利用してjavaの勉強を始めました。そこで練習のために、温度(摂氏または華氏)を受け取り、その反対に変換するプログラムを作っています。キーボードスキャナはすでに取り込みました。

    int temp;
    String opposite, type;
    double product;

    System.out.print("Please enter a temperature: ");
    temp = keyboard.nextInt();

    System.out.println("Was that in Celsius or Fahrenheit?");
    System.out.print("(Enter 'C' for Celsius and 'F' for Fahrenheit) ");
    type = keyboard.nextLine();

    if (type == "C") // Only irrelevant temp conversion code left so I'm leaving it out

私は初めてStringと nextLine この問題を解決するにはどうしたらいいのか、どなたか教えていただけませんか?

ありがとうございます。

解決方法は?

コード変更 nextLine();next(); と入力すれば、動作します。

System.out.println("Was that in Celsius or Fahrenheit?");
    System.out.print("(Enter 'C' for Celsius and 'F' for Fahrenheit) ");
    type = keyboard.next();

何が起こったのかを知るために、このようにしました。

  • nextLine(): これを進める スキャナは現在の行を越えて は、スキップされた入力を返します。
  • next(): このスキャナから次の完全なトークンを見つけて返します。

また、多くの回答が言うように equals() を使用するのではなく ==

== は、オブジェクトへの参照だけが等しいことをチェックします。 .equal() は文字列を比較します。

続きを読む これ