Java之Scanner類
阿新 • • 發佈:2020-09-23
參考連結:https://www.bilibili.com/video/BV12J41137hu?p=33
- 基本結構
兩種方法,Scanner.Next()以及Scanner.NextLine():
public class TestScanner { public static void main(String[] args) { //新建Scanner物件 Scanner scanner = new Scanner(System.in); //使用者輸出,有兩種用法 //1.Scanner.next,搭配Scanner.hasNext(); //2.Scanner.nextLine,搭配Scanner.hasNextLine(); //方法1 System.out.println("請輸入:"); if(scanner.hasNext()) { System.out.println("輸入的是"+scanner.next()); } //此方法是以空格為結束符的,所以無法接收到含有空格的字串,而且如果字串開始前有空格,則空格省略 //方法2 System.out.println("請輸入:"); if(scanner.hasNextLine()) { System.out.println("輸入的是"+scanner.nextLine()); } //此方法是以Enter為結束符的,所以可以接收到含有空格的字串,而且如果字串開始前有空格,則空格不會省略 //關閉Scanner物件,要有關閉IO流的好習慣 scanner.close(); } } result: 請輸入: 23 32 3213 輸入的是23 請輸入: 輸入的是 32 3213
- 擴充套件
例如Scanner.nextInt()...可以給定具體接受的資料型別
public class TestScanner2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入:"); //輸入int型別 if(scanner.hasNextInt()) { System.out.println("輸入的是int型 "+scanner.nextInt()); } //若輸出的是float型 if(scanner.hasNextFloat()) { System.out.println("輸入的是float型 "+scanner.nextFloat()); } scanner.close(); } } result1: 請輸入: 12 輸入的是int型 12 12 輸入的是float型 12.0 result2: 請輸入: 12.1 輸入的是float型 12.1
- 一個簡單應用例子
利用連續輸入實現一個例項,求多個數的平均數。要求輸入多個數,以非數的字元結束輸入
public class TestScnaner3 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double score = 0.0; int number = 0; System.out.println("請輸入:"); while(scanner.hasNextDouble()) { //nextDouble()就不是以空格為終止符,而是以非double的輸入為終止符 score+=scanner.nextDouble(); number++; } score/=number; System.out.println("平均數是 "+score); scanner.close(); } } 請輸入: 1 2 3 4 5 6 7 8 9 10 s 平均數是 5.5