Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Máy quét Java và các phương pháp của nó với sự trợ giúp của các ví dụ.
Các Scanner
lớp của java.util
gói phần mềm được sử dụng để đọc dữ liệu đầu vào từ các nguồn khác nhau như suối đầu vào, người dùng, tập tin, vv Hãy lấy một ví dụ.
Ví dụ 1: Đọc một dòng văn bản bằng máy quét
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
// takes input from the keyboard
String name = input.nextLine();
// prints the name
System.out.println("My name is " + name);
// closes the scanner
input.close();
}
}
Đầu ra
Enter your name: Kelvin My name is Kelvin
Trong ví dụ trên, hãy để ý dòng
Scanner input = new Scanner(System.in);
Ở đây, chúng tôi đã tạo một đối tượng của đầu vàoScanner
được đặt tên .
Các System.in
tham số được sử dụng để lấy đầu vào từ đầu vào tiêu chuẩn. Nó hoạt động giống như lấy đầu vào từ bàn phím.
Sau đó, chúng tôi đã sử dụng nextLine()
phương thức của Scanner
lớp để đọc một dòng văn bản từ người dùng.
Bây giờ bạn đã có một số ý tưởng về nó Scanner
, hãy cùng khám phá thêm về nó.
Nhập lớp máy quét
Như chúng ta có thể thấy từ ví dụ trên, chúng ta cần nhập java.util.Scanner
gói trước khi có thể sử dụng Scanner
lớp.
import java.util.Scanner;
Để tìm hiểu thêm về cách nhập các gói, hãy truy cập Gói Java .
Tạo một đối tượng máy quét trong Java
Sau khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo Scanner
các đối tượng.
// read input from the input stream
Scanner sc1 = new Scanner(InputStream input);
// read input from files
Scanner sc2 = new Scanner(File file);
// read input from a string
Scanner sc3 = new Scanner(String str);
Ở đây, chúng ta đã tạo các đối tượng của Scanner
lớp sẽ đọc đầu vào từ InputStream , File và String tương ứng.
Phương pháp máy quét Java để lấy đầu vào
Các Scanner
lớp học cung cấp phương pháp khác nhau mà cho phép chúng ta đọc đầu vào của các loại khác nhau.
Method | Decfscription |
---|---|
nextInt() | reads an int value from the user |
nextFloat() | reads a float value form the user |
nextBoolean() | reads a boolean value from the user |
nextLine() | reads a line of text from the user |
next() | reads a word from the user |
nextByte() | reads a byte value from the user |
nextDouble() | reads a doubl e value from the user |
nextShort() | reads a short value from the user |
nextLong() | reads a long value from the user |
Ví dụ 2: Máy quét Java nextInt ()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates a Scanner object
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer: ");
// reads an int value
int data1 = input.nextInt();
System.out.println("Using nextInt(): " + data1);
input.close();
}
}
Đầu ra
Enter an integer: 22 Using nextInt(): 22
Trong ví dụ trên, chúng ta đã sử dụng nextInt()
phương thức để đọc một giá trị số nguyên.
Ví dụ 3: Máy quét Java nextDouble ()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter Double value: ");
// reads the double value
double value = input.nextDouble();
System.out.println("Using nextDouble(): " + value);
input.close();
}
}
Đầu ra
Enter Double value: 33.33 Using nextDouble(): 33.33
Trong ví dụ trên, chúng ta đã sử dụng nextDouble()
phương thức để đọc một giá trị dấu phẩy động.
Ví dụ 4: Máy quét Java tiếp theo ()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
// reads the entire word
String value = input.next();
System.out.println("Using next(): " + value);
input.close();
}
}
Đầu ra
Enter your name: Jonny Walker Using next(): Jonny
Trong ví dụ trên, chúng tôi đã sử dụng next()
phương thức để đọc một chuỗi từ người dùng.
Ở đây, chúng tôi đã cung cấp tên đầy đủ. Tuy nhiên, next()
phương thức chỉ đọc tên đầu tiên.
Điều này là do next()
phương thức đọc đầu vào đến ký tự khoảng trắng . Khi gặp phải khoảng trắng , nó sẽ trả về chuỗi (không bao gồm khoảng trắng).
Ví dụ 5: Máy quét Java nextLine ()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
// reads the entire line
String value = input.nextLine();
System.out.println("Using nextLine(): " + value);
input.close();
}
}
Đầu ra
Enter your name: Jonny Walker Using nextLine(): Jonny Walker
Trong ví dụ đầu tiên, chúng tôi đã sử dụng nextLine()
phương thức để đọc một chuỗi từ người dùng.
Không giống như next()
, nextLine()
phương thức đọc toàn bộ dòng đầu vào bao gồm cả khoảng trắng. Phương thức bị kết thúc khi nó gặp một ký tự dòng tiếp theo \n
,.
Đề xuất Đọc: Máy quét Java bỏ qua nextLine () .
Máy quét Java với BigInteger và BigDecimal
Máy quét Java cũng có thể được sử dụng để đọc số nguyên lớn và số thập phân lớn.
- nextBigInteger() – reads the big integer value from the user
- nextBigDecimal() – reads the big decimal value from the user
Ví dụ 4: Đọc BigInteger và BigDecimal
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter a big integer: ");
// reads the big integer
BigInteger value1 = input.nextBigInteger();
System.out.println("Using nextBigInteger(): " + value1);
System.out.print("Enter a big decimal: ");
// reads the big decimal
BigDecimal value2 = input.nextBigDecimal();
System.out.println("Using nextBigDecimal(): " + value2);
input.close();
}
}
Đầu ra
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
Trong ví dụ trên, chúng tôi đã sử dụng java.math.BigInteger
và java.math.BigDecimal
gói để đọc BigInteger
và BigDecimal
tương ứng.
Hoạt động của Máy quét Java
Các Scanner
lớp đọc toàn bộ một dòng và chia dòng vào thẻ. Token là các phần tử nhỏ có một số ý nghĩa đối với trình biên dịch Java. Ví dụ,
Giả sử có một chuỗi đầu vào:
He is 22
Trong trường hợp này, đối tượng máy quét sẽ đọc toàn bộ dòng và chia chuỗi thành các mã thông báo: ” He “, ” is ” và ” 22 “. Sau đó, đối tượng lặp lại từng mã thông báo và đọc từng mã thông báo bằng các phương pháp khác nhau của nó.
Lưu ý : Theo mặc định, khoảng trắng được sử dụng để phân chia các mã thông báo.