Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Scanner trong Java và các phương thức của nó với sự trợ giúp của các ví dụ.
lớp Scanner của gói java.util 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ụ.
Nội dung chính
1. Ví dụ 1: Đọc một dòng văn bản bằng máy quét
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/
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 Scanner có tên đầu vào.
tham số System.in đượ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 phương thức nextLine() của lớp Scanner để đọ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ó.
2. 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 gói java.util.Scanner trước khi có thể sử dụng lớp Scanner.
import java.util.Scanner;
Để tìm hiểu thêm về cách nhập gói, hãy truy cập Gói Java .
3. 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 lớp Scanner sẽ đọc đầu vào từ InputStream , File và String tương ứng.
4. Phương thức máy quét Java để lấy đầu vào
lớp Scanner cung cấp phương thức khác nhau mà cho phép chúng ta đọc đầu vào của các loại khác nhau.
phương thức | Sự miêu tả |
nextInt() | đọc một giá trị int từ người dùng |
nextFloat() | đọc một dạng giá trị float cho người dùng |
nextBoolean() | đọc mộtgiá trị boolean từ người dùng |
nextLine() | đọc một dòng văn bản từ người dùng |
next() | đọc một từ từ người dùng |
nextByte() | đọc một giá trị byte từ người dùng |
nextDouble() | đọc một giá trị doubl e từ người dùng |
nextShort() | đọc một giá trị short từ người dùng |
nextLong() | đọc một giá trị long từ người dùng |
4.1 Ví dụ 2: Scanner trong 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 phương thức nextInt() để đọc một giá trị số nguyên.
4.2 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 phương thức nextDouble() để đọc một giá trị dấu phẩy động.
4.3 Ví dụ 4: Scanner Java next()
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 phương thức next() để đọc một chuỗi từ người dùng.
Ở đây, chúng tôi đã cung cấp tên đầy đủ. Tuy nhiên, phương thức next() chỉ đọc tên đầu tiên.
Điều này là do phương thức next() đọc đầu vào lên đế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).
4.4 Ví dụ 5: Scanner trong Java nextLine ()
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/
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 phương thức nextLine() để đọc một chuỗi từ người dùng.
Không giống như phương thức next(), nextLine()đọ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,.
Khuyến nghị đọc: Máy quét Java bỏ qua nextLine () .
5. Scanner trong 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 () – đọc giá trị số nguyên lớn từ người dùng
- nextBigDecimal () – đọc giá trị thập phân lớn từ người dùng
5.5 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 ta đã sử dụng gói java.math.BigInteger và java.math.BigDecimal để đọc BigIntegervà BigDecimal tương ứng.
6. Hoạt động của Máy quét Java
lớp Scannertoà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 “. Đối tượng sau đó 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 thức khác nhau của nó.
Lưu ý : Theo mặc định, khoảng trắng được sử dụng để chia các mã thông báo.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Java từ cơ bản tới nâng cao tại đây nha.
- Ebook về Java tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!