Java
2022.01.21
Javaの標準入力・標準出力とは?Scannerの使い方をわかりやすく解説!
2023.11.15


1.Javaの標準入力、標準出力とは?

Java_標準入力_標準出力01

Javaの標準入力とは、キーボードからの入力のことをいいます。コンソールアプリケーションにキーボードで入力した値を、プログラム内の変数に保持して処理を実行します。


一方、Javaの標準出力とは、プログラム変数のデータを画面へ表示することです。


Javaでは入出力関連のクラスは「java.io」パッケージにまとめられています。

①標準入力とは

ここでは、Javaの標準入力について解説します。


Javaでは標準入力をSystem.inで取得します。System.inの型はInputStreamです。


ただ、このSystem.inはストリームでの読み込みを行うメソッドしか持っていないので、通常Scannerクラスのオブジェクトに変換して取得します。

②標準出力とは

標準出力は、System.outで出力します。System.outの型はPrintStreamです。

PrintStreamクラスの主なメソッドは、以下です。

・printlnメソッド

・printメソッド

・printfメソッド


具体的な内容は次の章で解説します。

2.標準出力の方法


標準出力の方法について、サンプルコードを見ながら確認していきましょう。

public class App {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
        System.out.print("Hello, World!");
        System.out.printf("Hello, %s!","World");
    }
}

実行結果:

Hello, World!
Hello, World!Hello, World!

printlnメソッドは、引数の内容を出力した後に改行します。


同様にprintメソッドも引数の内容を出力しますが、その後に改行はしません。


また、printfメソッドは、出力する文字列の書式を指定することが可能です。たとえば、日付をYYYY/MM/DD形式に変更したり、数値をカンマ区切りに整形したりできます。


サンプルコードのprintfは、第一引数の%sの箇所に第二引数の”World”を代入し、出力しています。


この記事では詳細説明は省きますが、気になる方は公式リファレンスを見てみてください。

https://docs.oracle.com/javase/jp/8/docs/api/java/io/PrintStream.html#printf-java.lang.String-java.lang.Object



3.標準入力の方法

Java_標準入力_標準出力02

ここでは標準入力の方法について、ソースコードを用いて解説します。

・Scannerクラス

・nextLineメソッド

・nextメソッド

・nextIntメソッド

①Scannerクラスのインスタンスを生成する

Scannerクラスは、Javaでキーボードから標準入力を取得するために必要なクラスです。

まずは、ファイルの先頭でimport文を使用し、java.util.Scannerパッケージ利用の宣言をしましょう。

import java.util.Scanner;

次に以下のようにインスタンスを生成し、標準入力を取得します。

Scanner scanner = new Scanner(System.in);

Scannerクラスの第一引数は入力ストリームを指定します。このSystem.inは、標準入力を意味します。

②nextLineメソッドで行全体の入力を取得する

ScannerクラスのnextLineメソッドを使用すると、キーボード入力した内容の「改行までの1行分」を取得できます。

import java.util.Scanner;

public class App {
    public static void main(String[] args) {
        //■標準入力
        //Scannerクラス
        Scanner scanner = new Scanner(System.in);

        //nextLineメソッド
        String result = scanner.nextLine();

        System.out.println(result);
        scanner.close();
    }
}

実行結果:

ターミナルに、「Javaの習得方法」と入力すると、

Javaの習得方法

と表示されます。

③nextメソッドで空白文字までを取得する

Scannerクラスのnextメソッドを使用すると、キーボード入力した内容の「空白文字までの文字列」を取得できます。

import java.util.Scanner;

public class App {
    public static void main(String[] args) {
        //■標準入力
        //Scannerクラス
        Scanner scanner = new Scanner(System.in);

        //nextメソッド
        String result1 = scanner.next();
        String result2 = scanner.next();

        System.out.println(result1);
        System.out.println(result2);
        scanner.close();
    }
}

実行結果:

ターミナルに、「標準入力 標準出力」を入力すると、

標準入力
標準出力

と表示されます。

④nextIntメソッドで数値を取得する

ScannerクラスのnextIntメソッドを使用すると、int型(整数)の数値を取得できます。

import java.util.Scanner;

public class App {
    public static void main(String[] args) {
        //■標準入力
        //Scannerクラス
        Scanner scanner = new Scanner(System.in);

        //nextIntメソッド
        int result1 = scanner.nextInt();
        int result2 = scanner.nextInt();

        System.out.printf("%d + %d = %d%n", result1,result2,result1+result2);
        scanner.close();
    }
}

実行結果:

ターミナルに、「5 6」を入力すると、

5 + 6 = 11

と表示されます。


他にも、浮動小数点数型の値を取得するnextFloatメソッドなどもあります。
詳しく知りたい方は公式リファレンスを確認してみてくださいね。

https://docs.oracle.com/javase/jp/8/docs/api/java/util/Scanner.html




この記事をシェア