1. ホーム
  2. java

[解決済み] Javaで文字列変数を印刷する

2022-03-01 22:51:01

質問

一見簡単そうな)コードを実行すると、変な出力が出るんだけど。以下は、私が持っているものです。

import java.util.Scanner;

public class TestApplication {
  public static void main(String[] args) {
    System.out.println("Enter a password: ");
    Scanner input = new Scanner(System.in);
    input.next();
    String s = input.toString();
    System.out.println(s);
  }
}

そして、コンパイルに成功して得られる出力は、以下の通りです。

Enter a password: 
hello
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=5][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]

これはちょっと変ですね。何が起きているのか、どうすれば s ?

解決方法は?

を取得しています。 toString() の値は、Scanner オブジェクト自体によって返されます。それは、あなたが望むものでもなければ、Scanner オブジェクトを使用する方法でもありません。代わりに必要なのは、データ によって得られた を使用します。 例えば

Scanner input = new Scanner(System.in);
String data = input.nextLine();
System.out.println(data);

使い方はチュートリアルに書いてありますので、そちらをお読みください。

編集
こちらをご覧ください。 スキャナのチュートリアル

もご覧ください。 スキャナAPI Scannerのメソッドとプロパティの細かい点については、こちらをご覧ください。