在Java中,Scanner是java.util包中的一個類,用於獲取int、double等基本類型和字符串的輸入。
在 Java 中使用 Scanner 類是在 Java 程序中讀取輸入的最簡單方法,但如果您需要一種輸入方法,用於時間有限的場景(如競爭性編程),則效率不高。
Java 掃描器輸入類型
Scanner 類有助於獲取 Java 中的標準輸入流。因此,我們需要一些方法來從流中提取數據。用於提取數據的方法如下:
方法 |
說明 |
---|---|
用於讀取布爾值 | |
用於讀取字節值 | |
用於讀取 Double 值 | |
用於讀取浮點值 | |
用於讀取Int值 | |
用於讀取行值 | |
用於讀取長整型值 | |
用於讀取 Short 值 |
讓我們看一下讀取各種數據類型的數據的代碼片段。
Java Scanner 類的示例
示例 1:
Java
// Java program to read data of various types
// using Scanner class.
import java.util.Scanner;
// Driver Class
public class ScannerDemo1 {
// main function
public static void main(String[] args)
{
// Declare the object and initialize with
// predefined standard input object
Scanner sc = new Scanner(System.in);
// String input
String name = sc.nextLine();
// Character input
char gender = sc.next().charAt(0);
// Numerical data input
// byte, short and float can be read
// using similar-named functions.
int age = sc.nextInt();
long mobileNo = sc.nextLong();
double cgpa = sc.nextDouble();
// Print the values to check if the input was
// correctly obtained.
System.out.println("Name: " + name);
System.out.println("Gender: " + gender);
System.out.println("Age: " + age);
System.out.println("Mobile Number: " + mobileNo);
System.out.println("CGPA: " + cgpa);
}
}
輸入
Geek
F
40
9876543210
9.9
輸出
Name: Geek
Gender: F
Age: 40
Mobile Number: 9876543210
CGPA: 9.9
有時,我們必須檢查讀取的下一個值是否屬於某種類型或者輸入是否已結束(遇到 EOF 標記)。
然後,我們借助 hasNextXYZ() 函數檢查掃描儀的輸入是否是我們想要的類型,其中 XYZ 是我們感興趣的類型。如果掃描儀具有該類型的令牌,則該函數返回 true,否則返回 false。例如,在下麵的代碼中,我們使用了hasNextInt()。要檢查字符串,我們使用hasNextLine()。同樣,要檢查單個字符,我們使用hasNext().charAt(0)。
示例 2:
讓我們看一下從控製台讀取一些數字並打印它們的平均值的代碼片段。
Java
// Java program to read some values using Scanner
// class and print their mean.
import java.util.Scanner;
public class ScannerDemo2 {
public static void main(String[] args)
{
// Declare an object and initialize with
// predefined standard input object
Scanner sc = new Scanner(System.in);
// Initialize sum and count of input elements
int sum = 0, count = 0;
// Check if an int value is available
while (sc.hasNextInt()) {
// Read an int value
int num = sc.nextInt();
sum += num;
count++;
}
if (count > 0) {
int mean = sum / count;
System.out.println("Mean: " + mean);
}
else {
System.out.println(
"No integers were input. Mean cannot be calculated.");
}
}
}
輸入
1 2 3 4 5
輸出
Mean: 3
關於 Java Scanner 類的要點
- 為了創建Scanner類的對象,我們通常傳遞預定義的對象System.in,它代表標準輸入流。如果我們想從文件中讀取輸入,我們可以傳遞 File 類的對象。
- 要讀取某種數據類型 XYZ 的數值,要使用的函數是nextXYZ()。例如,要讀取short類型的值,我們可以使用nextShort()
- 要讀取字符串,我們使用nextLine()。
- 要讀取單個字符,我們使用next().charAt(0)。 next() 函數以字符串形式返回輸入中的下一個標記/單詞,charAt(0) 函數返回該字符串中的第一個字符。
- Scanner 類讀取整行並將該行劃分為標記。標記是對 Java 編譯器具有一定意義的小元素。例如,假設有一個輸入字符串:How are you
在這種情況下,掃描器對象將讀取整行並將字符串劃分為標記:“How”、“are” 和 “you”。然後,該對象迭代每個標記並使用其不同的方法讀取每個標記。
相關用法
- Java Scanner findWithinHorizon()用法及代碼示例
- Java Scanner hasNext()用法及代碼示例
- Java Scanner next()用法及代碼示例
- Java Scanner remove()用法及代碼示例
- Java Scanner tokens()用法及代碼示例
- Java Scanner close()用法及代碼示例
- Java Scanner delimiter()用法及代碼示例
- Java Scanner findInLine()用法及代碼示例
- Java Scanner hasNextBigDecimal()用法及代碼示例
- Java Scanner hasNextBoolean()用法及代碼示例
- Java Scanner hasNextDouble()用法及代碼示例
- Java Scanner hasNextFloat()用法及代碼示例
- Java Scanner hasNextLine()用法及代碼示例
- Java Scanner hasNextShort()用法及代碼示例
- Java Scanner ioException()用法及代碼示例
- Java Scanner locale()用法及代碼示例
- Java Scanner match()用法及代碼示例
- Java Scanner nextBigDecimal()用法及代碼示例
- Java Scanner nextBigInteger()用法及代碼示例
- Java Scanner nextBoolean()用法及代碼示例
- Java Scanner nextByte()用法及代碼示例
- Java Scanner nextDouble()用法及代碼示例
- Java Scanner nextFloat()用法及代碼示例
- Java Scanner nextInt()用法及代碼示例
- Java Scanner nextLine()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Scanner Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。