溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scanner 類怎么在Java 中使用

發(fā)布時間:2021-03-26 15:39:55 來源:億速云 閱讀:134 作者:Leah 欄目:編程語言

Scanner 類怎么在Java 中使用?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

通過 Scanner 類來獲取用戶的輸入,下面是創(chuàng)建 Scanner 對象的基本語法:

Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)

 接下來我們演示一個最簡單的數(shù)據(jù)輸入,并通過 Scanner 類的 next() 與 nextLine() 方法獲取輸入的字符串,在讀取前我們一般需要 使用 hasNext 與 hasNextLine 判斷是否還有輸入的數(shù)據(jù):

next() 與 nextLine() 區(qū)別

next()的使用方法演示:

import java.util.Scanner;
public class scannertest {
public static void main(String[] args) {
  Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)
  // next方式接收字符串
  System.out.println("next方式接收:");
  // 判斷是否還有輸入
  if (s.hasNext()) {
    String str1 = s.next();
    System.out.println("輸入的數(shù)據(jù)為:" + str1);
  }
  s.close();
}
}

next方式接收:

hello world

輸入的數(shù)據(jù)為:hello

由結(jié)果可知:

1、一定要讀取到有效字符后才可以結(jié)束輸入。

2、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉。

3、只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結(jié)束符。

next() 不能得到帶有空格的字符串。

nextLine()的使用方法演示:

import java.util.Scanner;
 public class scannertest2 {
public static void main(String[] args) {
  Scanner s = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù)
  // next方式接收字符串
  System.out.println("nextLine方式接收:");
  // 判斷是否還有輸入
  if (s.hasNextLine()) {
    String str2 = s.nextLine();
    System.out.println("輸入的數(shù)據(jù)為:" + str2);
  }
  s.close();
}
}

nextLine方式接收:

hello world 2018

輸入的數(shù)據(jù)為:hello world 2018

由上面可以看出,nextLine()方法具有以下特點:

1、以Enter為結(jié)束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符;

2、可以獲得空白,都會讀入,空格等均會被識別;

注意:如果要輸入 int 或 float 類型的數(shù)據(jù),在 Scanner 類中也有支持,但是在輸入之前最好先使用 hasNextXxx() 方法進行驗證,再使用 nextXxx() 來讀取,下面實現(xiàn)的功能是可以輸入多個數(shù)字,并求其總和與平均數(shù),每輸入一個數(shù)字用回車確認,通過輸入非數(shù)字來結(jié)束輸入并輸出執(zhí)行結(jié)果

import java.util.Scanner;
 public class scandemo {
 public static void main(String[] args) {
  System.out.println("請輸入數(shù)字:");
    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 + "個數(shù)的和為" + sum);
    System.out.println(m + "個數(shù)的平均值是" + (sum / m));
    scan.close();
 }
}

請輸入數(shù)字:

20.0
 30.0
 40.0
 end
 3個數(shù)的和為90.0
 3個數(shù)的平均值是30.0

看完上述內(nèi)容,你們掌握Scanner 類怎么在Java 中使用的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI