原文位址: 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下一篇:
異常處理如果對課程内容感興趣,可以掃碼關注我們的
公衆号
,及時關注我們的課程更新
QQ群
