1. 程式人生 > 其它 >java互動Scanner物件

java互動Scanner物件

java互動的Scanner物件

通過Scanner類的next()與nextLine()方法獲取輸入 字串,在讀取前一般使用hasNext()與hasNextLine()判斷是否含有輸入的資料

package com.yuanyu.study;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        //建立一個掃描器物件,用於接收鍵盤資料
       Scanner scanner= new Scanner(System.in);

       System.out.println("使用next方式接收:");

       //判斷使用者有無輸入字串
        if (scanner.hasNext()){
            String str=scanner.next();
            System.out.println("輸入的內容為:"+str);
        }
      
		
//        System.out.println("please input:");
//        if (scanner.hasNextLine()){
//            String str=scanner.nextLine();
//            System.out.println("Your input is:"+str);
      
      
        scanner.close(); //屬於I/O的資源使用完關閉防止佔用
      
    }
}

next():

  1. 會自動去掉有效字元前的空格

  2. 只有輸入有效字元才能將其後輸入的空格作為分隔符或結束符

  3. 不能得到含有空格的字串

nextLine():

  1. 以Enter為結束符即返回回車前輸入的所有字元

  2. 可以獲取空格

Scanner也可以捕獲int、float、...等型別

package com.yuanyu.study;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);

        int i=0;
        float f=0.0f;

        System.out.println("請輸入一個整數:");

        if (scanner.hasNextInt()){
            i=scanner.nextInt();
            System.out.println("輸入的整數為"+i);
        }else {
            System.out.println("你輸入的不是整數!");
        }

        System.out.println("請輸入一個小數:");
        if (scanner.hasNextFloat()){
            f=scanner.nextFloat();
            System.out.println("你輸入的小數為"+f);
        }else{
            System.out.println("你輸入的不是小數!");
        }
        scanner.close();
    }
}

建議在新建程式結束後引入main()後第一步是寫好

Scanner scanner=new Scanner(System.in);

//程式碼塊

scanner.close();

java Scanner小作業

要求:輸入多個數字,求其總和與平均數,每輸入一個數字用回車確認,通過輸入非數字來結束輸入並輸出結果;

package com.yuanyu.study;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);

        System.out.println("請輸入一組資料:");

        double sum=0; //初始化資料總和為0;
        int n=0; //初始化資料個數為0;

        while (scanner.hasNextDouble()){
            double d=scanner.nextDouble(); //用while迴圈判斷下一個是否為數字,若是數字則傳入d,若不是數字則迴圈結束;
            sum+=d;
            n++;
            System.out.println("第"+n+"個數的和為"+sum);
        }
        System.out.println("該資料的總和為:"+sum);
        System.out.println("該資料的平均數為:"+(sum/n));

        scanner.close();
    }
}