Chào các bạn đã đến với chủ để tiếp theo của mình. Hôm nay, mình sẽ tiếp tục giới thiệu về cách lớp Scanner trong Java. Ở bài này, mình sẽ đi qua những nội dung sau:
Nội dung
1. Scanner trong java là gì?
Scanner trong Java là một lớp nằm trong gói java.util, được sử dụng để đọc dữ liệu đầu vào từ các nguồn khác nhau như luồng đầu vào, người dùng, tập tin
Ví dụ:
import java.util.Scanner;
public 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();
}
}
Kết quả:
Enter your name: Teo
My name is Teo
Trong ví dụ trên, câu lệnh:
Scanner input = new Scanner(System.in);
Ở đây, chúng ta đã tạo một đối tượng của lớp Scanner có tên là input. Tham số System.in được sử dụng để lấy đầu vào. Sau đó, chúng ta đã sử dụng phương thức nextLine() của lớp Scanner để đọc một chuỗi ký tự từ người dùng.
Từ ví dụ trên, chúng ta cần thêm gói java.util.Scanner trước khi có thể sử dụng lớp Scanner.
import java.util.Scanner;
2. Các phương thức của lớp Scanner để lấy đầu vào
Phương thức | Mô tả |
nextInt() | Đọc một giá trị kiểu int. |
nextFloat() | Đọc một giá trị kiểu float. |
nextBoolean() | Đọc một giá trị kiểu Boolean. |
nextLine() | Đọc một dòng văn bản. |
next() | Đọc một từ. |
nextByte() | Đọc một giá trị ở dạng byte. |
nextDouble() | Đọc một giá trị kiểu double. |
nextShort() | Đọc một giá trị kiểu short. |
nextLong() | Đọc một giá trị kiểu long. |
2.1. Ví dụ 1: 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();
}
}
Kết quả:
Enter an integer:
10
Using nextInt(): 10
Trong ví dụ trên, chúng ta đã sử dụng phương thức nextInt() để đọc một giá trị số nguyên.
2.2. Ví dụ 1: Scanner trong 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();
}
}
Kết quả:
Enter Double value: 9.99
Using nextDouble(): 9.99
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.
2.3. Ví dụ 1: Scanner trong 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();
}
}
Kết quả:
Enter your name: Le Loi
Using next(): Le
Trong ví dụ trên, chúng ta đã sử dụng phương thức next() để đọc một chuỗi từ người dùng.
Ở đây, mắc dù chúng ta đã 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).
2.4. Ví dụ 1: Scanner trong 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 word
String value = input.nextLine();
System.out.println("Using nextLine(): " + value);
input.close();
}
}
Kết quả:
Enter your name: Le Loi
Using nextLine(): Le Loi
Trong ví dụ trên, chúng ta đã sử dụng phương thức nextLine() để đọc một chuỗi từ người dùng.
Không giống như next(), phương thức nextLine() đọc toàn bộ dòng đầu vào bao gồm cả khoảng trắng. Phương thức sẽ kết thúc khi nó gặp một ký tự xuống dòng \n.
3. Scanner trong Java với các số có giá trị lớn
Scanner cũng có thể được sử dụng để đọc giá trị số nguyê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.
Ví dụ:
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();
}
}
Kết quả:
Enter a big integer: 90000000000
Using nextBigInteger(): 90000000000
Enter a big decimal: 9999999999.99999
Using nextBigDecimal(): 9999999999.99999
Trong ví dụ trên, chúng ta đã sử dụng gói java.math.BigInteger và java.math.BigDecimal để đọc một giá trị số nguyên và số thập phân lớn tương ứng.
4. Đóng Scanner
Sau khi đã lấy đầu vào, chúng ta sẽ đóng lớp bằng cách nhập
input.close();
Bước này không bắt buộc. Nhưng đó là một thực hành tốt khi bạn lập trình.
5. Kết
Như vậy chúng ta đã tìm hiểu về cách lấy dữ liệu đầu vào người dùng trong chương trình Java. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.