Cách nhận thông tin đầu vào từ người dùng trong Java (kèm theo Hình ảnh)

Mục lục:

Cách nhận thông tin đầu vào từ người dùng trong Java (kèm theo Hình ảnh)
Cách nhận thông tin đầu vào từ người dùng trong Java (kèm theo Hình ảnh)

Video: Cách nhận thông tin đầu vào từ người dùng trong Java (kèm theo Hình ảnh)

Video: Cách nhận thông tin đầu vào từ người dùng trong Java (kèm theo Hình ảnh)
Video: Trùm "lan man" và con vi khuẩn đáng sợ | Plague Inc: Evolved #1 | Akacy Zedster 2024, Có thể
Anonim

Khi lập trình bằng Java hoặc bất kỳ ngôn ngữ nào khác, rất có thể bạn sẽ cần sử dụng thông tin đầu vào từ người dùng. Java cung cấp nhiều phương pháp khác nhau để lấy thông tin người dùng, nhưng phương pháp phổ biến nhất và có lẽ dễ thực hiện nhất là sử dụng đối tượng Scanner.

Các bước

Phương pháp 1/2: Video

1514756 1
1514756 1

Bước 1. Nhập lớp Máy quét

Bạn có thể chọn nhập

java.util. Scanner

lớp hoặc toàn bộ

java.util

Bưu kiện. Để nhập một lớp hoặc một gói, hãy thêm một trong các dòng sau vào đầu mã của bạn:

    nhập java.util. Scanner; // Điều này sẽ chỉ nhập lớp Máy quét. nhập java.util. *; // Điều này sẽ nhập toàn bộ gói java.util.

1514756 2
1514756 2

Bước 2. Khởi tạo một đối tượng Máy quét mới bằng cách chuyển

System.in

luồng đầu vào đến phương thức khởi tạo.

System.in

là luồng đầu vào tiêu chuẩn đã mở và sẵn sàng cung cấp dữ liệu đầu vào. Thông thường, luồng này tương ứng với đầu vào bàn phím.

    Máy quét userInputScanner = Máy quét mới (System.in);

1514756 3
1514756 3

Bước 3. Đọc các loại dữ liệu đầu vào khác nhau mà người dùng nhập vào

Lớp Scanner hỗ trợ lấy các nguyên thủy như int, byte, short, long ngoài việc lấy các chuỗi.

  • Dưới đây là một số phương pháp có sẵn thông qua lớp Máy quét:

    • Đọc một byte -

      nextByte ()

    • Đọc một đoạn ngắn -

      nextShort ()

    • Đọc một int -

      nextInt ()

    • Đọc dài -

      nextLong ()

    • Đọc phao -

      nextFloat ()

    • Đọc đôi -

      nextDouble ()

    • Đọc boolean -

      nextBoolean ()

    • Đọc một dòng hoàn chỉnh -

      hàng tiếp theo()

    • Đọc một từ -

      Kế tiếp()

  • Dưới đây là một ví dụ về một chương trình sử dụng các phương thức khác nhau của lớp Máy quét để nhận các kiểu đầu vào khác nhau:

      nhập java.util. Scanner; public class ScannerExample {public static void main (String args) {// Khởi tạo một máy quét Máy quét mới userInputScanner = new Scanner (System.in); // Kiểm tra nextLine (); System.out.println ("\ nTên của bạn là gì?"); Tên chuỗi = userInputScanner.nextLine (); // Kiểm tra nextInt (); System.out.print ("Bạn có bao nhiêu con mèo?"); int numberOfCats = userInputScanner.nextInt (); // Kiểm tra nextDouble (); System.out.print ("Có bao nhiêu tiền trong ví của bạn? $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nXin chào" + tên + "! Bạn có" + numberOfCats + (numberOfCats> 1? "Cat": "cat") + "và $" + moneyInWallet + "trong ví của mình. / N"); }}

Phương pháp 2/2: Xử lý ngoại lệ

1514756 4
1514756 4

Bước 1. Xử lý các ngoại lệ đầu vào

Một

InputMismatchException

được ném ra khi người dùng nhập dữ liệu không khớp với loại được yêu cầu. Ví dụ: nếu người dùng nhập một Chuỗi khi một int được yêu cầu, chương trình sẽ ném một

InputMismatchException

và thoát ra. Có một số cách để xử lý ngoại lệ này và giải quyết vấn đề này để chương trình của bạn có thể hoạt động tốt.

1514756 5
1514756 5

Bước 2. Sử dụng khối try-catch để xử lý

InputMismatchException

.

    nhập java.util. InputMismatchException; nhập java.util. Scanner; public class ScannerExample {public static void main (String args) {// Khởi tạo một Trình quét Máy quét mới userInputScanner = new Scanner (System.in); // Kiểm tra nextLine (); System.out.print ("\ nTên của bạn là gì?"); Tên chuỗi = userInputScanner.nextLine (); // Kiểm tra nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Bạn có bao nhiêu con mèo?"); thử {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Kiểm tra nextDouble (); validInput = false; tiền gấp đôiInWallet = 0,0; while (! validInput) {System.out.print ("Có bao nhiêu tiền trong ví của bạn? $"); thử {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nXin chào" + tên + "! Bạn có" + numberOfCats + (numberOfCats> 1? "Cat": "cat") + "và $" + moneyInWallet + "trong ví của mình. / n"); }}

  • Lưu ý rằng chúng ta phải nhập

    java.util. InputMismatchException

    để sử dụng

    InputMismatchException

  • lớp.
  • Chúng tôi đang sử dụng vòng lặp while để hỏi người dùng câu hỏi tương tự cho đến khi người dùng nhập đúng đầu vào.
  • Thêm

    userInputScanner.nextLine ();

  • trong phần bắt của try-catch đảm bảo rằng Máy quét thừa nhận việc nhấn phím "enter" từ người dùng và hoạt động như một cách để xóa bộ đệm đầu vào.
1514756 6
1514756 6

Bước 3. Ngoài ra, hãy làm cho đầu vào của người dùng trở nên dễ hiểu bằng cách chỉ lấy các dòng tiếp theo từ Máy quét

Bằng cách này, chúng tôi có thể đảm bảo rằng mọi thứ mà Máy quét trả về là một đối tượng Chuỗi và sẽ không tạo ra bất kỳ ngoại lệ nào. Sau đó, để chuyển đổi các chuỗi thành số nguyên hoặc gấp đôi, chúng ta có thể sử dụng các lớp Integer và Double wrapper.

    nhập java.util. Scanner; public class ScannerExample {public static void main (String args) {// Khởi tạo một máy quét Máy quét mới userInputScanner = new Scanner (System.in); // Kiểm tra nextLine (); System.out.print ("\ nTên của bạn là gì?"); Tên chuỗi = userInputScanner.nextLine (); // Kiểm tra nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Bạn có bao nhiêu con mèo?"); Đầu vào chuỗi = userInputScanner.nextLine (); thử {numberOfCats = Integer.parseInt (đầu vào); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Kiểm tra nextDouble (); validInput = false; tiền gấp đôiInWallet = 0,0; while (! validInput) {System.out.print ("Có bao nhiêu tiền trong ví của bạn? $"); Đầu vào chuỗi = userInputScanner.nextLine (); thử {moneyInWallet = Double.parseDouble (đầu vào); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nXin chào" + tên + "! Bạn có" + numberOfCats + (numberOfCats> 1? "Cat": "cat") + "và $" + moneyInWallet + "trong ví của mình. / n"); }}

  • Lưu ý rằng ở đây chúng tôi không phải nhập

    NumberFormatException

  • vì nó là một phần của gói java.lang, có nghĩa là nó được tích hợp sẵn.
  • Chúng tôi cũng không phải xóa bộ đệm bằng cách sử dụng

    userInputScanner.nextLine ();

  • trong phần bắt của thử bắt.

Lời khuyên

  • Xem API Máy quét để biết thêm thông tin về cách sử dụng lớp Máy quét.
  • Luôn sử dụng.next () thay vì.nextLine () để đọc từ tiếp theo, vì.nextLine () có thể bị lỗi.

Đề xuất: