华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java基礎(chǔ) >> 文章內(nèi)容

Java教程:JavaScanner類

來(lái)源:中華考試網(wǎng)  [2020年11月20日]  【

  一、Java Scanner 類

  java.util.Scanner 是 Java5 的新特征,我們可以通過(guò) Scanner 類來(lái)獲取用戶的輸入。

  下面是創(chuàng)建 Scanner 對(duì)象的基本語(yǔ)法:

  Scanner s = new Scanner(System.in);

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

  二、使用 next 方法:

  ScannerDemo.java 文件代碼:

  import java.util.Scanner;

  public class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  // 從鍵盤接收數(shù)據(jù)

  // ext方式接收字符串

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

  // 判斷是否還有輸入

  if (scan.hasNext()) {

  String str1 = scan.next(); System.out.println("輸入的數(shù)據(jù)為:" + str1); } scan.close(); } }

  執(zhí)行以上程序輸出結(jié)果為:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  next方式接收:

  runoob com

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

  可以看到 com 字符串并未輸出,接下來(lái)我們看 nextLine。

  三、使用 nextLine 方法:

  ScannerDemo.java 文件代碼:

  import java.util.Scanner;

  public class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  // 從鍵盤接收數(shù)據(jù)

  // extLine方式接收字符串

  System.out.println("nextLine方式接收:");

  // 判斷是否還有輸入

  if (scan.hasNextLine()) {

  String str2 = scan.nextLine();

  System.out.println("輸入的數(shù)據(jù)為:" + str2); } scan.close();

  } }

  執(zhí)行以上程序輸出結(jié)果為:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  nextLine方式接收:

  runoob com

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

  可以看到 com 字符串輸出。

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

  next():

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

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

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

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

  nextLine():

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

  填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽(tīng)java課程!害怕學(xué)不會(huì)?助教陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽(tīng)java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  2、可以獲得空白。

  如果要輸入 int 或 float 類型的數(shù)據(jù),在 Scanner 類中也有支持,但是在輸入之前最好先使用 hasNextXxx() 方法進(jìn)行驗(yàn)證,再使用 nextXxx() 來(lái)讀。

  ScannerDemo.java 文件代碼:

  import java.util.Scanner;

  public class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  // 從鍵盤接收數(shù)據(jù)

  int i = 0;

  float f = 0.0f;

  System.out.print("輸入整數(shù):");

  if (scan.hasNextInt()) {

  // 判斷輸入的是否是整數(shù)

  i = scan.nextInt();

  // 接收整數(shù)

  System.out.println("整數(shù)數(shù)據(jù):" + i);

  }

  else {

  // 輸入錯(cuò)誤的信息

  System.out.println("輸入的不是整數(shù)!");

  }

  System.out.print("輸入小數(shù):");

  if (scan.hasNextFloat()) {

  // 判斷輸入的是否是小數(shù)

  f = scan.nextFloat();

  // 接收小數(shù)

  System.out.println("小數(shù)數(shù)據(jù):" + f);

  }

  else {

  // 輸入錯(cuò)誤的信息

  System.out.println("輸入的不是小數(shù)!");

  } scan.close();

  } }

  執(zhí)行以上程序輸出結(jié)果為:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  輸入整數(shù):12

  整數(shù)數(shù)據(jù):12

  輸入小數(shù):1.2

  小數(shù)數(shù)據(jù):1.2

  以下實(shí)例我們可以輸入多個(gè)數(shù)字,并求其總和與平均數(shù),每輸入一個(gè)數(shù)字用回車確認(rèn),通過(guò)輸入非數(shù)字來(lái)結(jié)束輸入并輸出執(zhí)行結(jié)果:

  ScannerDemo.java 文件代碼:

  import java.util.Scanner;

  class ScannerDemo {

  public static void main(String[] args) {

  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 + "個(gè)數(shù)的和為" + sum);

  System.out.println(m + "個(gè)數(shù)的平均值是" + (sum / m)); scan.close();

  } }

  執(zhí)行以上程序輸出結(jié)果為:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  12

  23

  15

  21.4

  end

  4個(gè)數(shù)的和為71.4

  4個(gè)數(shù)的平均值是17.85

責(zé)編:fushihao

上一篇:Java自定義注解

下一篇: 沒(méi)有了

  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
昌吉市| 德州市| 嘉祥县| 清远市| 深圳市| 惠安县| 鄂州市| 石楼县| 贵定县| 萍乡市| 久治县| 沾益县| 朝阳区| 张家界市| 乳山市| 阿坝| 许昌县| 石景山区| 柳江县| 义马市| 平潭县| 台山市| 乐至县| 沈丘县| 台安县| 塘沽区| 行唐县| 营山县| 长泰县| 新绛县| 手游| 故城县| 革吉县| 旌德县| 堆龙德庆县| 商丘市| 建水县| 金秀| 永登县| 精河县| 凉山|