Mục lục:
- Trước khi bạn có thể sử dụng lớp
- Trước khi bạn có thể sử dụng
- Để đọc một giá trị đầu vào từ người dùng, bạn có thể sử dụng một trong các phương pháp của
Video: NVHL - Video hướng dẫn sử dụng phần mềm điểm danh 2025
Cho đến Java 1. 5, việc nhập văn bản từ người dùng trong một chương trình Java dựa trên giao diện điều khiển không phải là dễ dàng. Nhưng với Java 1. 5, một lớp mới - được gọi là
Máy quét
- đã được giới thiệu để đơn giản hóa nhiệm vụ nhận đầu vào từ người dùng. Ở đây, bạn sử dụng
Máy quét
để nhận các giá trị đầu vào đơn giản từ người dùng. Các kỹ thuật mà tôi trình bày ở đây được sử dụng trong nhiều chương trình được trình bày trong phần còn lại của cuốn sách này.
Nếu bạn đang sử dụng một phiên bản cũ của Java, bạn vẫn nên đọc nó vì nhiều chương trình sử dụng lớp
Scanner
.
Chương trình đơn giản dưới đây sử dụng lớp
Máy quét
để đọc một giá trị số nguyên từ người dùng và sau đó hiển thị giá trị trở lại bàn điều khiển để xác minh rằng chương trình đã nhận được giá trị đã nhập của người dùng. Dưới đây là một ví dụ về cửa sổ bảng điều khiển cho chương trình này:
5 Bạn nhập 5.
Chương trình bắt đầu bằng cách hiển thị thông báo
Nhập số nguyên:
vào dòng đầu tiên. Sau đó, bạn đợi cho bạn nhập một số. Khi bạn gõ một số (như 5) và nhấn phím Enter, nó sẽ hiển thị thông báo xác nhận (
Bạn đã nhập 5
.) Vào dòng thứ hai.
nhập khẩu java. util. Máy quét;
@@ ra1
(
Máy quét tĩnh sc = máy quét mới (Hệ thống.);
@@ ra6 public static void main (String [] args)
{
Hệ thống. ngoài. in ("Nhập số nguyên:");
@@ ra10 int x = sc. nextInt ();
@@ ra11 Hệ thống. ngoài. println ("Bạn đã nhập" + x + ".");
@@ ra12 }
}
Nhập lớp Scanner trong Java
Trước khi bạn có thể sử dụng lớp
Scanner
trong một chương trình, bạn phải nhập nó. Để thực hiện việc đó, bạn phải khai báo
nhập khẩu
vào đầu chương trình, trước khi khai báo lớp:
import java. util. Máy quét;
Lưu ý rằng
java
và
util
không được viết hoa, nhưng
Máy quét
là.
Nếu bạn đang sử dụng các lớp khác trong
java. util
, bạn có thể nhập toàn bộ gói bằng cách mã hoá câu lệnh
nhập
như sau:
import java. util. *;
Tuyên bố và tạo ra một đối tượng Scanner trong Java
Trước khi bạn có thể sử dụng
Scanner
để đọc dữ liệu vào bảng điều khiển, bạn phải khai báo biến
Scanner
và tạo một cá thể của lớp
Máy quét
. Bạn có thể muốn tạo biến
Scanner
như là một biến lớp và tạo đối tượng
Scanner
trong trình khởi tạo biến của lớp, như trong dòng 6 của chương trình trên:
Máy quét tĩnh sc = máy quét mới (hệ thống. in);
Bằng cách đó, bạn có thể sử dụng biến
sc
bằng bất kỳ phương pháp nào trong lớp.
Để tạo một đối tượng
Scanner
, bạn sử dụng từ khóa
new
tiếp theo là một cuộc gọi tới nhà xây dựng lớp
Scanner
. Lưu ý rằng lớp
Máy quét
yêu cầu một tham số cho biết
dòng đầu vào mà đầu vào đến. Bạn có thể sử dụng Hệ thống. trong
ở đây để chỉ định đầu vào bảng điều khiển bàn phím tiêu chuẩn.
Bắt đầu nhập
Để đọc một giá trị đầu vào từ người dùng, bạn có thể sử dụng một trong các phương pháp của
Máy quét
được liệt kê dưới đây. Như bạn thấy, kiểu dữ liệu nguyên thủy có một phương pháp riêng biệt.
Phương thức
boolean nextBoolean () | Đọc giá trị |
boolean
|
từ người dùng.
byte nextByte ()
Đọc giá trị |
byte
|
từ người dùng.
double nextDouble ()
Đọc giá trị |
đôi
|
từ người dùng.
float nextFloat ()
Đọc giá trị |
float
|
từ người dùng.
int nextInt ()
Đọc giá trị |
int
|
từ người dùng.
Chuỗi nextLine ()
Đọc giá trị |
Chuỗi
|
từ người dùng.
long nextLong ()
Đọc giá trị |
dài
|
từ người dùng.
short nextShort ()
Đọc giá trị |
ngắn
|
từ người dùng.
Thông báo trong cột đầu tiên của bảng rằng mỗi phương thức liệt kê bắt đầu bằng loại giá trị được trả về bởi phương thức. Phương pháp
nextInt |
, ví dụ, trả về giá trị
int
. Ngoài ra, chú ý rằng mỗi phương pháp kết thúc với một tập các dấu ngoặc đơn rỗng. Điều đó có nghĩa là những phương pháp này không yêu cầu các tham số. Nếu một phương pháp yêu cầu các tham số, các tham số được liệt kê trong ngoặc đơn này.
Bởi vì những phương pháp này đọc một giá trị từ người dùng và trả lại giá trị, bạn thường sử dụng chúng trong các câu lệnh chỉ định giá trị cho một biến. Dòng 11, ví dụ, đọc một
int
và gán nó cho một biến có tên
x
.
Khi phương thức
nextInt
được thực hiện, chương trình sẽ đợi người dùng nhập một giá trị trong cửa sổ bảng điều khiển. Để cho người dùng biết loại đầu vào mà chương trình mong đợi, bạn thường gọi hệ thống
. ngoài. print
trước khi bạn gọi phương pháp
Scanner
để nhập dữ liệu. Dòng 10 cuộc gọi
Hệ thống. ngoài. print
để hiển thị thông báo
Nhập số nguyên:
trên bảng điều khiển. Bằng cách đó, người dùng biết rằng chương trình đang chờ đợi đầu vào.
Nếu người dùng nhập vào một giá trị không thể được chuyển đổi sang kiểu đúng, chương trình sẽ bị treo, có nghĩa là nó chấm dứt đột ngột. Khi chương trình bị treo, chương trình sẽ hiển thị thông báo lỗi khó hiểu cho biết lỗi gây ra sự cố. Nếu bạn nhập
ba
thay vì số thực, ví dụ: cửa sổ console trông giống như sau:
Nhập số nguyên:
ba
Ngoại lệ trong chủ đề "main" java. util. InputMismatchException tại java. util. Máy quét. throwFor (Máy quét: java: 819) tại java. util. Máy quét. tiếp theo (Máy quét: java: 1431)
tại java. util. Máy quét. nextInt (Máy quét: java: 2040)
tại java. util. Máy quét. nextInt (Máy quét: java: 2000)
tại ScannerApp.main (ScannerApp. java: 11)
Thông báo này cho biết rằng
ngoại lệ
được gọi là InputMismatchException đã xảy ra, có nghĩa là chương trình đã mong đợi để thấy một số nguyên nhưng có cái gì khác thay vào đó. Nếu bạn không biết làm thế nào để cung cấp cho các trường hợp ngoại lệ như thế này để chương trình có thể hiển thị một thông điệp thân thiện hơn và cung cấp cho người dùng một cú sút khác khi nhập đúng giá trị, bạn phải chấp nhận thực tế là nếu người dùng nhập dữ liệu không chính xác, chương trình của bạn gặp rắc rối.
Bạn có thể ngăn không cho
nextInt
và các phương pháp tương tự đâm vào với dữ liệu đầu vào không chính xác bằng cách sử dụng một trong các phương pháp được liệt kê ở đây để kiểm tra đầu vào tiếp theo để đảm bảo nó có giá trị.
true | Nếu giá trị tiếp theo được nhập vào bởi người dùng là một giá trị hợp lệ < giá trị boolean |
.
|
boolean hasNextByte ()
Trả về
true
nếu giá trị tiếp theo được nhập bởi người dùng là giá trị
byte |
hợp lệ.
|
boolean hasNextDouble ()
Trả về
true
nếu giá trị tiếp theo được nhập bởi người dùng là giá trị
đôi |
hợp lệ.
|
boolean hasNextFloat ()
Trả về
true
nếu giá trị tiếp theo được nhập bởi người dùng là giá trị
float |
hợp lệ.
|
boolean hasNextInt ()
Trả về
true
nếu giá trị tiếp theo được nhập bởi người dùng là giá trị
int |
hợp lệ.
|
boolean hasNextLong ()
Trả về
true
nếu giá trị tiếp theo được nhập bởi người dùng là giá trị
dài |
hợp lệ.
|
boolean hasNextShort ()
Trả về
true
nếu giá trị tiếp theo được nhập bởi người dùng là giá trị
ngắn |
hợp lệ.
|