Java で入力から文字を取得する

Rupam Yadav 2023年10月12日
  1. Java で Scanner.next().charAt(0) を使って入力から文字を取得する
  2. Java の System.in.read() を用いて入力から文字を取得する
  3. Java の InputStreamReader() を用いて入力から文字を取得する
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: /
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Scanner

関連記事 - Java Char