ホームページ  >  記事  >  Java  >  Java ユーザー入力

Java ユーザー入力

WBOY
WBOYオリジナル
2024-08-30 16:06:42612ブラウズ

Java プログラムでは、コマンド ライン環境でユーザーからの入力を読み取り、ユーザー入力を取得する 3 つの方法、Java BufferedReader クラス、Java Scanner クラス、および Console クラスがあります。クラスについて詳しく説明しましょう。 Scanner クラスを使用してユーザー入力を取得します。このプログラムはユーザーに整数、文字列、および浮動小数点数を入力するように要求し、それがディスプレイに表示されます。 java.util のスキャナ クラスは、このパッケージをソフトウェアに追加できるように存在します。まず、Scanner Class オブジェクトを作成し、Scanner Class メソッドを使用します。

Java ユーザー入力の 3 つの方法

ユーザー入力を読み取るには 3 つの方法があります:

広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

  1. Java BufferedReader クラス
  2. Java スキャナ クラス
  3. コンソールクラスの使用

これら 3 つのクラスについては以下で説明します。それらについて詳しく説明しましょう:

1. Java BufferedReader クラス

リーダークラスを拡張します。 BufferedReader は、文字入力ストリームから入力を読み取り、文字をバッファリングして、すべての入力を効率的に読み取ることができます。デフォルトのサイズはバッファリング用に大きくなっています。ユーザーが読み取りリクエストを行うと、対応するリクエストがリーダーに送られ、リーダーは文字またはバイト ストリームの読み取りリクエストを行います。したがって、BufferedReader クラスは、FileReader や InputStreamReaders などの別の入力ストリームにラップされます。

例:

BufferedReader reader = new BufferedReader(new FileReader("foo.in"));

BufferedReader は、readLine() メソッドを使用してデータを 1 行ずつ読み取ることができます。

BufferedReader を使用すると、コードのパフォーマンスを高速化できます。

コンストラクター

BufferedReader には次の 2 つのコンストラクターがあります:

1. BufferedReader(リーダー リーダー): 入力バッファーのデフォルト サイズを使用するバッファリングされた入力文字ストリームを作成するために使用されます。

2. BufferedReader(リーダー リーダー、入力サイズ): 入力バッファーに指定されたサイズを使用する、バッファリングされた入力文字ストリームを作成するために使用されます。

機能
  • int read: 単一文字の読み取りに使用されます。
  • int read(char[] cbuffer, int offset, int length): 配列の指定された部分の文字を読み取るために使用されます。
  • String readLine (): 入力を 1 行ずつ読み取るために使用されます。
  • booleanready(): 入力バッファが読み取りの準備ができているかどうかをテストするために使用されます。
  • ロングスキップ: 文字をスキップするために使用されます。
  • void close(): 入力ストリーム バッファーとストリームに関連付けられたシステム リソースを閉じます。

ユーザーがキーボードから文字を入力すると、その文字はデバイス バッファーによって読み取られ、次に System.in からバッファー リーダーまたは入力ストリーム リーダーに渡されて、入力バッファーに保存されます。

コード:

import java.util.*;
import java.lang.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*package whatever //do not write package name here */
class BufferedReaderDemo {
public static void main (String[] args) throws NumberFormatException, IOException {
System.out.println("Enter your number");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
System.out.println("Number you entered is: " + t);
System.out.println("Enter your string");
String s  = br.readLine();
System.out.println("String you entered is: " + s);
}
}

出力:

Java ユーザー入力

InputStreamReader と BufferedReader からの読み取りを伴うプログラム:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BufferedReaderDemo {
public static void main(String args[]) throws IOException{
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
System.out.println("What is your name?");
String name=br.readLine();
System.out.println("Welcome "+name);
}
}

出力:

Java ユーザー入力

2. Java スキャナ クラス

java.util.スキャナ クラスは、キーボードからのユーザー入力を読み取るために使用されるクラスの 1 つです。 util パッケージで入手できます。スキャナ クラスは、デフォルトではほとんどが空白である区切り文字を使用してユーザー入力を分割します。スキャナには、double、int、float、long、Boolean、short、byte などの多くのプリミティブ型のコンソール入力を読み取るためのメソッドが多数あります。これは、Java で入力を取得する最も簡単な方法です。 Scanner クラスは Iterator インターフェイスと Closeable インターフェイスを実装します。スキャナーは、プリミティブ型の入力を読み取るための nextInt() と多くのプリミティブ型メソッドを提供します。 next() メソッドは文字列入力に使用されます。

Constructors
  • Scanner(File source): It constructs a scanner to read from a specified file.
  • Scanner(File source, String charsetName):  It constructs a scanner to read from a specified file.
  • Scanner(InputStream source), Scanner(InputStream source, String charsetName): It constructs a scanner to read from a specified input stream.
  • Scanner(0Readable source):  It constructs a scanner to read from a specified readable source.
  • Scanner(String source):  It constructs a scanner to read from a specified string source.
  • Scanner(ReadableByteChannel source): It constructs a scanner to read from a specified channel source.
  • Scanner(ReadableByteChannel source, String charsetName): It constructs a scanner to read from a specified channel source.
Functions

Below are mentioned the method to scan the primitive types from console input through Scanner class.

  • nextInt(),
  • nextFloat(),
  • nectDouble(),
  • nextLong(),
  • nextShort(),
  • nextBoolean(),
  • nextDouble(),
  • nextByte(),

Program to read from Scanner Class:

Using scanner class.
import java.util.Scanner;
/*package whatever //do not write package name here */
class ScannerDemo {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your number");
int t = sc.nextInt();
System.out.println("Number you entered is: " + t);
System.out.println("Enter your string");
String s  = sc.next();
System.out.println("String you entered is: " + s);
}
}

Output:

Java ユーザー入力

3. Using console Class

Using the console class to read the input from the command-line interface. It does not work on IDE.

Code:

public class Main
{
public static void main(String[] args)
{
// Using Console to input data from user
System.out.println("Enter your data");
String name = System.console().readLine();
System.out.println("You entered: "+name);
}
}

Output:

Java ユーザー入力

以上がJava ユーザー入力の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。