Javaのスキャナクラス
java.util.Scanner Java5の新機能は、我々はScannerクラスを介してユーザの入力を取得することができます。
ここでスキャナオブジェクトを作成するための基本的な構文は次のとおりです。
Scanner s = new Scanner(System.in);
次に、我々は読む前に、私たちが一般的のhasNextとhaxNextLineが入力されたかどうかを判断するためにデータを使用する必要があり、簡単なデータ入力とScannerクラスを介して利用可能な次の()およびnextLine()メソッド入力文字列を示します。
次のメソッドを使用します。
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 从键盘接收数据 //next方式接收字符串 System.out.println("next方式接收:"); // 判断是否还有输入 if(scan.hasNext()){ String str1 = scan.next(); System.out.println("输入的数据为:"+str1); } } }
上記のプログラムの出力は、次のとおりです。
$ javac ScannerDemo.java $ java ScannerDemo next方式接收: w3big com 输入的数据为:w3big
コムあなたは出力文字列をなし、のはnextLineを見てみましょう見ることができます。
nextLineメソッドを使用します。
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
//nextLine方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if(scan.hasNextLine()){
String str2 = scan.nextLine();
System.out.println("输入的数据为:"+str2);
}
}
}
上記のプログラムの出力は、次のとおりです。
$ javac ScannerDemo.java $ java ScannerDemo nextLine方式接收: w3big com 输入的数据为:w3big com
コムあなたは、出力文字列を見ることができます。
次の()およびnextLine()の違い
次の():
- 彼らは有効な文字を入力することができる前に1、終了を必ずお読みください。
- 2は、遭遇した有効な空白文字を入力する前に、次の()メソッドは自動的に削除されます。
- 3、唯一の区切り文字またはターミネーターなどの入力の後ろに空白文字の後に有効と入力します。
- 次の()スペースで文字列を取得することはできません。
nextLine():
- 1、文字を終了します、それはnextLine()メソッドは、キャリッジリターンする前に、すべての文字を返すと言うことです。
- 2は、ブランクを得ることができます。
あなたはScannerクラス内のデータのintまたはフロートタイプを入力する場合もサポートされていますが、それは入る前に確認するためにhasNextXxx()メソッドを使用するのが最適ですされ、その後、読み取りにnextXxx()を使用します。
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 从键盘接收数据 int i = 0 ; float f = 0.0f ; System.out.print("输入整数:"); if(scan.hasNextInt()){ // 判断输入的是否是整数 i = scan.nextInt() ; // 接收整数 System.out.println("整数数据:" + i) ; }else{ // 输入错误的信息 System.out.println("输入的不是整数!") ; } System.out.print("输入小数:"); if(scan.hasNextFloat()){ // 判断输入的是否是小数 f = scan.nextFloat() ; // 接收小数 System.out.println("小数数据:" + f) ; }else{ // 输入错误的信息 System.out.println("输入的不是小数!") ; } } }
上記のプログラムの出力は、次のとおりです。
$ javac ScannerDemo.java $ java ScannerDemo 输入整数:12 整数数据:12 输入小数:1.2 小数数据:1.2
以下の例では、我々は複数の番号を入力することができ、その合計と平均のために、それぞれが、その後、非数値の入力を入力して終了するにはEnterキーを押して番号を入力し、結果を出力します。
import java.util.Scanner; class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double sum = 0; int m = 0; while(scan.hasNextDouble()) { double x = scan.nextDouble(); m = m + 1; sum = sum + x; } System.out.println(m+"个数的和为"+sum); System.out.println(m+"个数的平均值是"+(sum/m)); } }
上記のプログラムの出力は、次のとおりです。
$ javac ScannerDemo.java $ java ScannerDemo 12 23 15 21.4 end 4个数的和为71.4 4个数的平均值是17.85