1. Membaca dari konsol menggunakanSystem.in
Pada pelajaran sebelumnya, kita mengenal perintah untuk menampilkan informasi di layar. Untuk melakukan ini, kami telah menggunakan System.out
objek dan print()
metodenya println()
. Ini sederhana dan nyaman.
Namun, seperti yang mungkin sudah Anda duga, menampilkan informasi di layar saja tidak cukup bagi kami. Tujuan sebagian besar program adalah melakukan sesuatu yang bermanfaat bagi pengguna. Artinya, sangat sering bagi pengguna untuk dapat memasukkan data dari keyboard.
Seperti halnya output, kami juga memiliki objek khusus untuk input data — System.in
. Tapi, sayangnya bagi kami, ini tidak senyaman yang kami inginkan. Ini memungkinkan kita membaca data dari keyboard satu karakter pada satu waktu.
Untuk menyempurnakannya, kita akan menggunakan kelas lain yang, saat dipasangkan dengan objek System.in
, akan memberikan semua yang kita butuhkan. Sejak lama, Java memiliki kelas yang sesuai untuk setiap kesempatan. Dan kita akan mengenal salah satu dari mereka sekarang.
2. Scanner
kelas
Kelas Scanner
(nama lengkap: java.util.Scanner
) dapat membaca data dari berbagai sumber, misalnya konsol, file, dan Internet. Jika kita ingin membaca data dari keyboard, maka kita harus mengirimkan objek System.in
sebagai argumen yang akan berfungsi sebagai sumber data. Dan kemudian objek Pemindai akan mencari tahu apa yang harus dilakukan dengannya.
Membaca dari keyboard menggunakan Scanner
objek akan terlihat seperti ini:
Kode | Penjelasan |
---|---|
|
Kami membuat Scanner objek. Kami membaca sebaris teks dari keyboard. Kami membaca nomor dari keyboard. |
Kelihatannya mudah, tapi apakah benar sesederhana itu?
Saya pikir Anda pasti memiliki banyak pertanyaan, dan sekarang kami akan menjawabnya.
Tapi pertama-tama, mari kita tunjukkan contoh program lengkap yang menggunakan Scanner
kelas tersebut:
import java.util.Scanner;
public class Solution {
public static void main(String[] args)
{
Scanner console = new Scanner(System.in);
String name = console.nextLine();
int age = console.nextInt();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
3. Membuat Scanner
objek
Pertanyaan pertama adalah garis apa ini Scanner console = new Scanner (System.in);
?
Baris ini mungkin membingungkan, tetapi Anda akan selalu melihat hal serupa. Jadi menurut kami penting untuk menjelaskan apa yang terjadi di sini.
Ingat bagaimana kita biasanya membuat variabel dengan teks:
String str = "text";
Pertama, kita menulis tipe variabel ( String
), lalu namanya ( str
), dan terakhir, setelah tanda sama dengan, kita menulis nilainya.
Baris membingungkan kami sebenarnya sama:
Scanner console = new Scanner(System.in);
Scanner
variabel
Segala sesuatu di sebelah kiri tanda sama dengan adalah deklarasi variabel bernama console
yang bertipe Scanner
. Anda malah bisa menyebutnya s
atau scanner
atau bahkan keyboard
. Maka kode akan terlihat seperti ini:
Scanner s = new Scanner(System.in);
String name = s.nextLine();
int age = s.nextInt();
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();
Scanner keyboard = new Scanner(System.in);
String name = keyboard.nextLine();
int age = keyboard.nextInt();
Saya pikir itu membuat segalanya lebih jelas.
Tetapi kode di sebelah kanan tanda sama dengan sedikit lebih rumit. Saya sekarang mengacu pada new Scanner(System.in);
Yang mengatakan, tidak ada hal supernatural yang terjadi di sini juga.
Dalam kode ini, kami memberi tahu mesin Java: buat objek baru (kata new
kunci) yang bertipe Scanner
, meneruskan objek System.in
sebagai sumber data untuk Scanner
objek yang baru dibuat.
Setelah menjalankan seluruh baris ini, kita akan memiliki Scanner
variabel bernama console
yang akan digunakan program kita untuk membaca data dari keyboard.
4. Daftar metode
Dalam contoh di atas, Scanner
console
variabel kita menyimpan referensi ke suatu Scanner
objek.
Untuk memanggil metode pada objek yang direferensikan oleh variabel, Anda menulis tanda titik setelah nama variabel, diikuti dengan nama metode dan argumen apa pun. Tampilan perintah secara umum adalah sebagai berikut:
variable.method(arguments);
Contoh:
System.out.println("Hello");
System.out.println(1);
Jika Anda tidak berencana meneruskan argumen ke suatu fungsi, maka Anda cukup menulis tanda kurung kosong:
variable.method();
Contoh:
System.out.println();
5. Masukan konsol
Saat kita memiliki Scanner
objek, mudah untuk mendapatkan data dari keyboard.
Untuk membaca baris dari keyboard , Anda memerlukan perintah ini:
String str = console.nextLine();
Saat eksekusi program mencapai baris ini, program akan berhenti sejenak dan menunggu pengguna memasukkan data dan menekan enter. Kemudian semua yang dimasukkan pengguna disimpan dalam variabel str
.
Untuk membaca angka dari keyboard , Anda memerlukan perintah ini:
int number = console.nextInt();
Semuanya di sini seperti perintah sebelumnya. Saat eksekusi program mencapai baris ini, program akan berhenti sejenak dan menunggu pengguna memasukkan data dan menekan enter. Setelah itu, semua yang dimasukkan pengguna diubah menjadi angka dan disimpan dalam number
variabel.
Jika pengguna memasukkan data yang tidak dapat diubah menjadi bilangan bulat, program akan menghasilkan kesalahan dan keluar.
Untuk membaca angka pecahan dari keyboard , Anda memerlukan perintah ini:
double number = console.nextDouble();
Pernyataan ini sangat mirip dengan metode nextInt()
, hanya memeriksa apakah data yang dimasukkan dapat diubah menjadi double
angka.
Contoh program yang membaca dua angka dari keyboard dan menampilkan jumlahnya di layar:
import java.util.Scanner;
public class Solution {
public static void main(String[] args)
{
Scanner console = new Scanner(System.in);
int a = console.nextInt();
int b = console.nextInt();
System.out.println(a + b);
}
}
Pengguna dapat memasukkan beberapa angka dalam satu baris, memisahkannya dengan spasi: metode kelas Scanner
mengetahui cara menanganinya. Konon, program membaca angka hanya setelah pengguna menekan Enter
.
6. Metode lain dari Scanner
kelas
Omong-omong, metode di atas tidak semuanya Scanner
ditawarkan oleh kelas. Daftar lengkap metode terlihat seperti ini:
metode | Keterangan |
---|---|
|
Membaca data dan mengubahnya menjadi abyte |
|
Membaca data dan mengubahnya menjadi ashort |
|
Membaca data dan mengubahnya menjadi fileint |
|
Membaca data dan mengubahnya menjadi along |
|
Membaca data dan mengubahnya menjadi afloat |
|
Membaca data dan mengubahnya menjadi adouble |
|
Membaca data dan mengubahnya menjadi aboolean |
|
Membaca satu "token". Token dipisahkan oleh spasi atau penekanan tombol enter |
|
Membaca seluruh baris |
Ada juga metode yang memungkinkan Anda memeriksa token berikutnya di input tanpa benar-benar mengambilnya (untuk mengetahui metode mana yang digunakan untuk membacanya).
metode | Keterangan |
---|---|
|
Apakah ada byte ? Bisakah input diubah menjadi a byte ? |
|
Apakah ada short ? Bisakah input diubah menjadi a short ? |
|
Apakah ada int ? Bisakah input diubah menjadi int ? |
|
Apakah ada long ? Bisakah input diubah menjadi a long ? |
|
Apakah ada float ? Bisakah input diubah menjadi a float ? |
|
Apakah ada double ? Bisakah input diubah menjadi a double ? |
|
Apakah ada boolean ? Bisakah input diubah menjadi a boolean ? |
|
Apakah ada token lain? |
|
Apakah ada baris lain? |
7. Membaca data dari sebuah string
Kami sebelumnya menyebutkan bahwa Scanner
kelas dapat membaca data dari berbagai sumber. Salah satu sumber tersebut adalah string teks .
Ini terlihat seperti ini:
String str = "text";
Scanner scanner = new Scanner(str);
Saat membuat Scanner
objek, kami mengirimkan string str
alih-alih System.in
objek. Dan sekarang scanner
objek akan membaca data dari string. Contoh:
Kode program: | Penjelasan: |
---|---|
|
// a == 10;
// b == 20;
Output layar akan menjadi: |
GO TO FULL VERSION