用戶交互Scanner
Scanner對象
-
Java.util.Scanner是java5的新特征,我們可以通過Scanner類來獲取用戶的輸入。
-
基本語法
? Scanner s = new Scanner(System.in);
-
通過Scanner類的next()與nextLine()方法獲取輸入的字符串,在讀取前我們一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的數(shù)據(jù)。
- next():
- 一定要讀取到有效字符后才可以結(jié)束輸入。
- 對輸入有效字符字符之前的遇到的空白,next()方法會自動將其去掉。
- 只有輸入有效字符后才將其后面輸入的空白作為結(jié)束符或者分隔符。
- next()不能得到帶有空格的字符串。
- nextLine():
- 以Enter為結(jié)束符也就是說nextLine()方法返回的是輸入回車之前所有的字符。
- 可以獲得空白字符。
- next():
package scanner;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//從鍵盤接受數(shù)據(jù)
int i = 0;
float f = 0.0f;
System.out.println("請輸入整數(shù):");
//判斷輸入的是不是整數(shù)
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整數(shù)數(shù)據(jù):"+i);
}else {
System.out.println("輸入的不是整數(shù)數(shù)據(jù)!");
}
//判斷輸入的是不是小數(shù)
System.out.println("請輸入小數(shù):");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小數(shù)數(shù)據(jù):"+f);
}else {
System.out.println("輸入的不是小數(shù)數(shù)據(jù)!");
}
scanner.close();
}
}
eg:
//我們可以輸入多個(gè)數(shù)字,并求其總和與平均數(shù),每輸入一個(gè)數(shù)字用回車確認(rèn),通過輸入非數(shù)字來結(jié)束輸入并輸出執(zhí)行結(jié)果
package scanner;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
//我們可以輸入多個(gè)數(shù)字,并求其總和與平均數(shù),每輸入一個(gè)數(shù)字用回車確認(rèn),通過輸入非數(shù)字來結(jié)束輸入并輸出執(zhí)行結(jié)果
Scanner scanner = new Scanner(System.in);
//定義和
double sum = 0;
//計(jì)算輸入了多少個(gè)數(shù)
int m = 0;
System.out.println("請輸入數(shù)據(jù):");
//通過循環(huán)判斷是否還有輸入,并且在里面對每一次求和統(tǒng)計(jì)
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
// 求和
m+= 1;
sum = sum + x;
System.out.println("你輸入了第"+m+"個(gè)數(shù)據(jù),當(dāng)前和為:"+sum);
}
System.out.println(m+"個(gè)數(shù)的總和為:"+sum);
System.out.println(m+"個(gè)數(shù)的平均數(shù)為:"+(sum / m));
scanner.close();
}
}

浙公網(wǎng)安備 33010602011771號