Saat memprogram dalam Java atau bahasa lain, kemungkinan besar Anda perlu menggunakan informasi input dari pengguna. Java menyediakan banyak metode berbeda untuk mendapatkan informasi pengguna, tetapi metode yang paling umum dan mungkin paling mudah diterapkan adalah dengan menggunakan objek Scanner.
Langkah
Metode 1 dari 2: Video
Langkah 1. Impor kelas Pemindai
Anda dapat memilih untuk mengimpor
java.util. Scanner
kelas atau keseluruhan
java.util
kemasan. Untuk mengimpor kelas atau paket, tambahkan salah satu baris berikut ke awal kode Anda:
impor java.util. Scanner; // Ini hanya akan mengimpor kelas Pemindai. impor java.util.*; // Ini akan mengimpor seluruh paket java.util.
Langkah 2. Inisialisasi objek Pemindai baru dengan melewatkan
System.in
aliran input ke konstruktor.
System.in
adalah aliran input standar yang sudah terbuka dan siap mensuplai data input. Biasanya aliran ini sesuai dengan input keyboard.
Pemindai userInputScanner = Pemindai baru(System.in);
Langkah 3. Baca berbagai jenis data input yang dimasukkan pengguna
Kelas Scanner mendukung mendapatkan primitif seperti int, byte, short, long selain mendapatkan string.
-
Berikut adalah beberapa metode yang tersedia melalui kelas Scanner:
-
Baca satu byte -
berikutnyaByte()
-
Baca singkat-
berikutnyaPendek()
-
Baca sebuah int -
berikutnyaInt()
-
Baca panjang-
berikutnyaPanjang()
-
Baca pelampung -
berikutnyaFloat()
-
Baca ganda -
berikutnyaGanda()
-
Baca boolean -
berikutnyaBoolean()
-
Baca baris lengkap -
baris berikutnya()
-
Membaca kata-
lanjut()
-
-
Berikut adalah contoh program yang menggunakan metode berbeda dari kelas Pemindai untuk mendapatkan berbagai jenis input:
impor java.util. Scanner; public class ScannerExample { public static void main(String args) { // Memulai Pemindai Pemindai baru userInputScanner = Pemindai baru(System.in); // Menguji nextLine(); System.out.println("\nSiapa nama anda? "); Nama string = userInputScanner.nextLine(); // Menguji nextInt(); System.out.print("Berapa banyak kucing yang kamu punya? "); int numberOfCats = userInputScanner.nextInt(); // Menguji nextDouble(); System.out.print("Berapa banyak uang di dompet Anda? $"); double moneyInWallet = userInputScanner.nextDouble(); System.out.println("\nHalo " + nama + "! Anda memiliki " + numberOfCats + (numberOfCats > 1 ? " cats": " cat") + " dan $" + moneyInWallet + " di dompet Anda.\n"); } }
Metode 2 dari 2: Menangani Pengecualian
Langkah 1. Menangani pengecualian input
NS
InputMismatchException
dilempar ketika pengguna memasukkan data yang tidak sesuai dengan tipe yang diminta. Misalnya, jika pengguna memasukkan sebuah String ketika sebuah int diminta, program akan melempar
InputMismatchException
dan keluar. Ada beberapa cara untuk menangani pengecualian ini dan menyelesaikan masalah ini sehingga program Anda dapat menjadi sangat mudah.
Langkah 2. Gunakan blok try-catch untuk menangani
InputMismatchException
.
impor java.util. InputMismatchException; impor java.util. Scanner; public class ScannerExample { public static void main(String args) { // Memulai Pemindai Pemindai baru userInputScanner = Pemindai baru(System.in); // Menguji nextLine(); System.out.print("\nSiapa nama anda? "); Nama string = userInputScanner.nextLine(); // Menguji nextInt(); boolean validInput = salah; int jumlahKucing = 0; while (!validInput) { System.out.print("Berapa banyak kucing yang kamu punya? "); coba { numberOfCats = userInputScanner.nextInt(); validInput = benar; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } // Pengujian nextDouble(); validInput = salah; uang gandaInWallet = 0,0; while (!validInput) { System.out.print("Berapa banyak uang di dompet Anda? $"); coba { moneyInWallet = userInputScanner.nextDouble(); userInputScanner.nextLine(); validInput = benar; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } System.out.println("\nHalo " + nama + "! Anda memiliki " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " dan $" + moneyInWallet + " di dompet Anda.\ n"); } }
Perhatikan bahwa kita harus mengimpor
java.util. InputMismatchException
untuk menggunakan
InputMismatchException
Menambahkan
userInputScanner.nextLine();
Langkah 3. Atau, buat input pengguna sangat mudah dengan hanya mengambil baris berikutnya dari Pemindai
Dengan cara ini, kami dapat memastikan bahwa semua yang dikembalikan oleh Pemindai adalah objek String dan tidak akan membuat pengecualian apa pun. Kemudian, untuk mengubah string menjadi integer atau double, kita dapat menggunakan kelas Integer dan Double wrapper.
impor java.util. Scanner; public class ScannerExample { public static void main(String args) { // Memulai Pemindai Pemindai baru userInputScanner = Pemindai baru(System.in); // Menguji nextLine(); System.out.print("\nSiapa nama anda? "); Nama string = userInputScanner.nextLine(); // Menguji nextInt(); boolean validInput = salah; int jumlahKucing = 0; while (!validInput) { System.out.print("Berapa banyak kucing yang kamu punya? "); Masukan string = userInputScanner.nextLine(); coba { numberOfCats = Integer.parseInt(input); validInput = benar; } catch (NumberFormatException e) { validInput = false; } } // Pengujian nextDouble(); validInput = salah; uang gandaInWallet = 0,0; while (!validInput) { System.out.print("Berapa banyak uang di dompet Anda? $"); Masukan string = userInputScanner.nextLine(); coba { moneyInWallet = Double.parseDouble(input); validInput = benar; } catch (NumberFormatException e) { validInput = false; } } System.out.println("\nHalo " + nama + "! Anda memiliki " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " dan $" + moneyInWallet + " di dompet Anda.\ n"); } }
Perhatikan bahwa di sini kita tidak perlu mengimpor
NumberFormatException
Kami juga tidak harus menghapus buffer menggunakan
userInputScanner.nextLine();
Tips
- Lihat API Pemindai untuk informasi selengkapnya tentang penggunaan kelas Pemindai.
- Selalu gunakan.next() alih-alih.nextLine() untuk membaca kata berikutnya, karena.nextLine() bisa jadi buggy.