※ ChatGPTを利用し、要約された質問です(原文:Scanner.next() で躓いています。)
Scanner.next()で躓いています
このQ&Aのポイント
初心者の方がScanner.next()でリターンキーを押した際に取得される文字列が""や"
"、nullでないため、「リターンキーを押しました」と出力されない場合があります。
Scanner.next()は、空文字列""や改行文字"
"を取得することができないため、if文の条件式が成立しません。
正しい判定をするためには、Scanner.nextLine()を使用するか、equals()メソッドで比較を行う必要があります。
初心者です。Scanner.next()でリターンキーを押した時、next()で取得されるのは、"" か 、"\n" か、 "null" だろう、と思い下記のプログラムを作りましたが、どれも違うようで「リターンキーを押しました」と出ません。何が間違っているのでしょうか?
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String key = "";
System.out.println("リターンキーを押して");
key = scan.nextLine();
if ( (key == "") || (key =="\n") || (key == null) ){
System.out.println("リターンキーを押しました。");
}
}
}
お礼
ありがとうございました。かなり悩んでいたので大変助かりました。equials("")で上手くいきました。ポインタになっていたのでしょうか。