原文地址:http://www.work100.net/training/java-scanner.html
更多教程:光束雲 - 免費課程
Scanner類
序號 | 文內章節 | 視頻 |
---|---|---|
1 | 概述 | - |
2 | 使用next方法 | - |
3 | 使用nextLine方法 | - |
4 | next與nextLine區別 | - |
請參照如上章節導航
進行閱讀
1.概述
java.util.Scanner
是 Java5 的新特徵,我們可以通過 Scanner
類來獲取用戶的輸入。
下面是創建 Scanner
對象的基本語法:
Scanner s = new Scanner(System.in);
接下來我們演示一個最簡單的數據輸入,並通過 Scanner
類的 next()
與 nextLine()
方法獲取輸入的字符串,在讀取前我們一般需要 使用 hasNext()
與 hasNextLine()
判斷是否還有輸入的數據:
2.使用next方法
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);
}
scan.close();
}
}
執行以上程序輸出結果爲:
$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
work100 net
輸入的數據爲:work100
可以看到 net
字符串並未輸出,接下來我們看 nextLine
。
3.使用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);
}
scan.close();
}
}
執行以上程序輸出結果爲:
$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
work100 net
輸入的數據爲:work100 net
可以看到 net
字符串輸出。
4.next()與nextLine()區別
next()
- 一定要讀取到有效字符後纔可以結束輸入
- 對輸入有效字符之前遇到的空白,
next()
方法會自動將其去掉 - 只有輸入有效字符後纔將其後面輸入的空白作爲分隔符或者結束符
next()
不能得到帶有空格的字符串
nextLine()
- 以
Enter
爲結束符,也就是說nextLine()
方法返回的是輸入回車之前的所有字符 - 可以獲得空白
如果要輸入 int
或 float
類型的數據,在 Scanner
類中也有支持,但是在輸入之前最好先使用 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("輸入的不是小數!");
}
scan.close();
}
}
執行以上程序輸出結果爲:
$ javac ScannerDemo.java
$ java ScannerDemo
輸入整數:12
整數數據:12
輸入小數:1.2
小數數據:1.2
以下實例我們可以輸入多個數字,並求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入並輸出執行結果:
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));
scan.close();
}
}
執行以上程序輸出結果爲:
$ javac ScannerDemo.java
$ java ScannerDemo
12
23
15
21.4
end
4個數的和爲71.4
4個數的平均值是17.85
上一篇:Stream和File和IO
下一篇:異常處理