HOWTO · Java
Java で入力から文字を取得する
Java で文字を入力する方法を説明しています。
このページの内容
この記事では、Java で文字を入力するために使用できるいくつか紹介します。Java で全文を入力して読み取ることはできますが、1 文字を読み取る方法はほとんどありません。以下の例では、いくつかの方法とその使い方を紹介します。
Java で Scanner.next().charAt(0) を使って入力から文字を取得する
最初の例では、Scanner クラスを使って入力を取得します。入力を char として読み込むには scanner.next().charAt(0) を使用します。charAt(0) はスキャナから最初の文字を読み取ります。
import java.util.Scanner;
public class InputChar {
public static void main(String[] args) d {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input a character: ");
char value = scanner.next().charAt(0);
System.out.println("Character: " + value);
}
}
出力:
Please input a character:
h
Character: h
Java の System.in.read() を用いて入力から文字を取得する
次の例では、System.in を直接用いて read() メソッドを呼び出す。System.in.read() は 1 バイトを読み込んで int を返します。すべての文字は数値を表しているので、int を文字に変換することができ、その逆も可能です。
以下では、System.in.read() を用いて入力を読み込み、それを char にキャストして文字型に変換します。
import java.io.IOException;
public class InputChar {
public static void main(String[] args) throws IOException {
System.out.println("Please input a character: ");
char value = (char) System.in.read();
System.out.println("Character: " + value);
}
}
出力:
Please input a character:
j
Character: j
Java の InputStreamReader() を用いて入力から文字を取得する
もう一つの類似したメソッドは System.in と同様に read() メソッドを提供する InputStreamRead() を利用するものです。この read() メソッドを使って、int を返す文字を入力し、以下の例で行ったように、それを char にキャストできます。
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
public class InputChar {
public static void main(String[] args) throws IOException {
System.out.println("Please input a character: ");
Reader reader = new InputStreamReader(System.in);
int characterAsInt = reader.read();
char character = (char) characterAsInt;
System.out.println("Character: " + character);
}
}
出力:
Please input a character:
/
Character: /