1. 程式人生 > 其它 >Java流程控制 Scanner

Java流程控制 Scanner

Scanner物件

 

基本語法:

  Scanner  sc  =  new Scanner(System.in) ;

 

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

 

其實上圖的意思就是,比如:nextlnt():只讀取int值,就是隻能讀取整數型別的資料,如果輸入了非整型的資料(浮點型字串等)就會報錯。
nextFloat()、nextDouble()這些也是以此類推,只能讀取符合該型別的資料。

next()和nextLine()的區別:
next():只讀取輸入直到空格。它不能讀兩個由空格或符號隔開的單詞。此外,next()在讀取輸入後將游標放在同一行中。(next()只讀空格之前的資料,並且游標指向本行)

nextLine():讀取輸入,包括單詞之間的空格和除回車以外的所有符號(即。它讀到行尾)。讀取輸入後,nextLine()將游標定位在下一行。

程式碼演示:

public class Text {
  public static void main(String []args) {
    Scanner input = new Scanner(System.in);
    System.out.println("請輸入一個字串(中間能加空格或符號)");
    String a = input.nextLine();
    System.out.println("請輸入一個字串(中間不能加空格或符號)");


    String b = input.next();
    System.out.println("請輸入一個整數");
    int c;
    c = input.nextInt();
    System.out.println("請輸入一個double型別的小數");
    double d = input.nextDouble();
    System.out.println("請輸入一個float型別的小數");
    float f = input.nextFloat();
    System.out.println("按順序輸出abcdf的值:");

    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
    System.out.println(d);
    System.out.println(f);
  }
}

執行結果:

請輸入一個字串(中間能加空格或符號)

我愛王威

請輸入一個字串(中間不能加空格或符號)

HelloWord

請輸入一個整數

520 

請輸入一個double型別的小數

12.26

請輸入一個float型別的小數

3.1415926

按順序輸出abcdf的值:

我愛王威
HelloWord
520
12.26
3.1415925

 

public class inputInformation {
  public static void main(String args[]) {
    Scanner scan = new Scanner(System.in); //構造Scanner類的物件scan,接收從控制檯輸入的資訊
    System.out.println("請輸入你的姓名");
    String name = scan.nextLine();//接收一個字串,可以加除Enter以外的所有符號,包括空格和Tab
    System.out.println("請輸入你的ID");
    String ID ;
    while(scan.hasNextLine())    {    // hasNextLine()方法判斷當前是否有輸入,當鍵盤有輸入後執行迴圈
      if(scan.hasNextInt())    {   // 判斷輸入的值是否為整數型別,當為整數型別時執行迴圈
        ID = scan.nextLine();
        System.out.println("你輸入的姓名為:"+name);
        System.out.println("你輸入的ID為:"+ID);
        break;
}      else {
        System.out.println("請輸入數字哦!");
        ID = scan.nextLine();
         continue;
}
}
}
}

輸出結果:

請輸入你的姓名

西地那非

請輸入你的ID

a1

請輸入數字哦!

1