Cara menggunakan Pemindai di Jawa

How Use Scanner Java



Pemindai di Java adalah kelas dalam paket java.util. Kelas ini bertujuan untuk membaca input dari string, keyboard, file, atau soket jaringan. Artikel ini hanya berkonsentrasi pada membaca input dari keyboard dan menampilkan hasilnya di jendela terminal. Ide serupa dapat digunakan untuk membaca input dari file atau saluran jaringan. Pemindai tidak mencetak ke jendela terminal. Untuk mencetak ke terminal, gunakan objek System.out. Sangat mudah untuk menggunakan objek ini untuk mencetak ke terminal, seperti yang diilustrasikan di bawah ini.

Untuk menggunakan kelas Pemindai, itu harus diimpor terlebih dahulu. Setelah itu, sebuah objek harus dibuat instance-nya. Setelah menggunakan objek Scanner, itu harus ditutup. Objek aliran input yang mewakili keyboard adalah System.in. Pemindai memiliki banyak metode. Hanya yang umum digunakan yang akan dijelaskan dalam artikel ini.







Isi Artikel



Penggunaan sederhana dari Kelas Pemindai

Kode berikut meminta pengguna untuk mengetikkan sebuah kalimat, dan kemudian menampilkan kalimat tersebut:



impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);
Sistem .keluar.println('Ketik kalimat dan tekan Enter:');

Rangkaian kalimat=scanObj.baris berikutnya();
Sistem .keluar.println(kalimat);

scanObj.Menutup();
}
}

Baris pertama mengimpor kelas Scanner. Pada fungsi utama, baris pertama membuat objek pemindai menggunakan objek System.in untuk keyboard. Segera setelah objek pemindai dibuat, ia mulai menunggu input. Baris berikutnya mencetak pernyataan, meminta pengguna untuk mengetikkan sebuah kalimat. Baris berikut dalam kode menggunakan metode nextLine() dari objek pemindai untuk membaca kalimat pengguna setelah dia menekan Enter. Baris setelah, dalam kode, mencetak ulang kalimat di jendela terminal. Baris terakhir menutup objek pemindai.





Meludah Baris Input menjadi Nilai

Kode berikut membagi baris input menjadi kata-kata (token), menggunakan spasi sebagai pembatas:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);
Sistem .keluar.println('Ketik sebaris token, dan tekan Enter:');

ketika(scanObj.memilikiSelanjutnya()){
Sistem .keluar.println(scanObj.lanjut());
}

scanObj.Menutup();
}
}

hasNext() dan next() adalah dua metode lain dari objek pemindai. Ketika objek pemindai membaca garis, itu menyimpannya. next() mengakses token berikutnya (word). hasNext() mengembalikan nilai true jika ada token lain yang belum diakses.



Sayangnya, pengguna masih diharapkan mengetikkan input untuk membelah dan menampilkan kembali dengan kode ini. Untuk mengakhiri semua itu, tekan Ctrl+z, dan Anda akan kembali ke command prompt.

Dalam kode di atas, pembatas memisahkan token di ruang. Karakter lain dapat digunakan. Kode berikut menggunakan koma. Jangan lupa tekan Ctrl+z untuk mengakhiri loop jika Anda menguji kode.

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);
Sistem .keluar.println('Ketik sebaris token, dan tekan Enter:');

scanObj.gunakan Pembatas(',');

ketika(scanObj.memilikiSelanjutnya()){
Sistem .keluar.println(scanObj.lanjut());
}

scanObj.Menutup();
}
}

Jika Anda menguji kodenya, Anda akan memperhatikan bahwa spasi dalam token telah dimasukkan sebagai bagian dari token (output). Ekspresi, scanObj.useDelimiter(); diketik setelah baris input dibaca; itulah yang membuat koma, pembatas.

Membaca dan Memvalidasi Tipe Data Primitif

metode Boolean() berikutnya

Dalam kode berikut, pengguna diharapkan untuk mengetik benar atau salah tanpa tanda kutip dan kemudian tekan tombol Enter jika pengguna mengetik yang lain, seperti ya atau tidak, pesan kesalahan akan ditampilkan.

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.mencetak('Apakah Anda di atas 24? ');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

booleanbl=scanObj.berikutnyaBoolean();
jika (bl== benar) {
Sistem .keluar.println('Kamu lebih dari 24');
}
lain jika (bl== Salah) {
Sistem .keluar.println('Anda berusia di bawah 24');
}

scanObj.Menutup();
}
}

Karena Java akan mengeluarkan pesan kesalahan selama inputnya tidak benar atau salah persis, yang lain jika telah digunakan alih-alih yang lain.

Perbedaan antara metode, print dan println, adalah bahwa print mengharapkan input pada baris saat ini, sedangkan println mengharapkan input pada baris berikutnya.

metode nextByte()

Dengan set karakter ASCII, karakter adalah satu byte. Namun, dengan beberapa set karakter Timur, karakter dapat terdiri dari lebih dari satu byte. Terlepas dari rangkaian karakter, metode nextByte membaca dan memvalidasi byte input berikutnya. Kode berikut dapat digunakan untuk tujuan ini:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.mencetak('Ketik nomor<128, press Enter: ');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

bytebt=scanObj.berikutnyaByte();
Sistem .keluar.println(bt);

scanObj.Menutup();
}
}

Jika angka yang lebih besar dari 127 atau karakter alfabet dimasukkan untuk kode ini, pesan kesalahan akan dikeluarkan.

nextInt() Metode

Token integer berikutnya sebagai input juga dapat divalidasi dan diterima. Kode berikut dapat digunakan:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.mencetak('Masukkan bilangan bulat apa saja:');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

ke dalampada satu=scanObj.berikutnyaInt();
Sistem .keluar.println(pada satu);

scanObj.Menutup();
}
}

Spasi awal atau akhir telah dihilangkan. Untuk kode ini, nilai integer apa pun, termasuk nilai yang lebih besar dari 127, akan diterima. Dengan metode nextXXX() ini, setelah validasi gagal, pesan kesalahan dikeluarkan.

NextBigInteger() Metode

Tampaknya para insinyur perangkat lunak tidak akan pernah berhenti menghasilkan hal-hal baru. Bilangan bulat besar adalah bilangan bulat yang nilainya jauh lebih besar daripada bilangan bulat. Namun, dengan Java, dapat dibaca dengan cara yang sama seperti integer. Kode berikut menggambarkan hal ini:

impor java.util.Scanner;
impor java.math.BigInteger;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.println('Masukkan sembarang bilangan bulat untuk bilangan bulat besar: ');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

Bilangan Bulat Besar pada satu=scanObj.berikutnyaBigInteger();
Sistem .keluar.println(pada satu);

scanObj.Menutup();
}
}

Perhatikan pernyataan import, import java.math.BigInteger;. Juga, perhatikan bahwa tipe bilangan bulat besar dimulai dengan huruf besar B dan bukan huruf kecil b.

NextFloat() Metode

Token float berikutnya sebagai input juga dapat divalidasi dan diterima. Kode berikut dapat digunakan:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.mencetak('Masukkan Float apa saja:');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

mengambangpada satu=scanObj.berikutnyaFloat();
Sistem .keluar.println(pada satu);

scanObj.Menutup();
}
}

Contoh bilangan float adalah 23.456. Spasi awal atau akhir telah dihilangkan.

berikutnyaGanda()

Token ganda berikutnya sebagai input juga dapat divalidasi dan diterima. Kode berikut dapat digunakan:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.mencetak('Masukkan Double apa saja:');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

dobelpada satu=scanObj.berikutnyaDouble();
Sistem .keluar.println(pada satu);

scanObj.Menutup();
}
}

Contoh bilangan ganda adalah 23.456. Angka ganda berbeda dari float karena memiliki margin kesalahan yang lebih sedikit. Spasi awal atau akhir telah dihilangkan.

metode nextLine()

Metode nextLine() adalah untuk string. Jika string adalah baris input dari keyboard setelah menekan Enter, string tersebut dapat memiliki karakter baris baru, ' '. Kode berikut dapat digunakan:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Sistem .keluar.println('Masukkan baris yang memiliki\n : ');
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

Rangkaian P=scanObj.baris berikutnya();
Sistem .keluar.println(P);

scanObj.Menutup();
}
}

Perhatikan bahwa tipe string dimulai dengan huruf besar S dan bukan huruf kecil s.

Metode nextLine(), hasNext() dan next() telah digunakan sebelumnya, dalam artikel ini. Pemindai memiliki metode lain dan metode data primitif lainnya – lihat nanti.

Menetapkan Input ke Variabel

Input dapat diberikan ke variabel, seperti yang ditunjukkan kode berikut:

impor java.util.Scanner;

publik kelasKelas{
publik statis ruang kosongutama( Rangkaian []argumen) {
Pemindaian pemindaiObj= baruPemindai( Sistem .di dalam);

Sistem .keluar.mencetak('Masukkan nama: ');
Rangkaian nama=scanObj.baris berikutnya();

Sistem .keluar.mencetak('Masukkan Usia:');
ke dalamusia=scanObj.berikutnyaInt();

Sistem .keluar.mencetak('Masukkan Gaji:');
dobelgaji=scanObj.berikutnyaDouble();

Sistem .keluar.println('Nama:' +nama+ ', Usia: ' +usia+ ', Gaji: ' +gaji);

scanObj.Menutup();
}
}

Kesimpulan

Pemindai di Java adalah kelas dalam paket java.util. Kelas ini bertujuan untuk membaca input dari string, keyboard, file, atau soket jaringan. Artikel ini berkonsentrasi terutama pada membaca input dari keyboard dan menampilkan hasilnya di jendela terminal. Ide serupa dapat digunakan untuk membaca input dari string, file, atau saluran jaringan.

Untuk membaca seluruh baris input keyboard, gunakan metode nextLine(). Baris sebagai string dapat dipecah menjadi token, menggunakan metode hasNext() dan next(), dan loop while. Pembatas default untuk pemisahan adalah ruang, tetapi pemrogram dapat memilih beberapa pembatas lainnya. Jangan lupa lakukan Ctrl+z untuk menghentikan while loop, jika perlu. Menghapus spasi awal dan akhir dapat dilakukan menggunakan skema lain yang tidak dibahas dalam artikel ini. Validasi token juga dapat dilakukan menggunakan skema lain yang tidak dibahas dalam artikel ini.

Nilai primitif dapat dibaca menggunakan nextBoolean(), nextByte(), nextInt(), dll. Metode nextXXX() ini melakukan validasi, dan juga menghapus spasi awal dan akhir.

Pemindai Java memiliki lebih banyak metode. Namun, penggunaan dasar Pemindai telah dijelaskan dalam artikel ini. Pemilihan token sebenarnya dilakukan dengan menggunakan teknik ekspresi reguler. Penggunaan teknik ekspresi reguler adalah diskusi, untuk beberapa waktu lain.