1. Maca saka console nggunakakeSystem.in

Ing pelajaran sadurunge, kita kenal karo perintah kanggo nampilake informasi ing layar. Kanggo nindakake iki, kita wis nggunakake System.outobyek print()lan println()cara. Iku prasaja lan trep.

Nanging, kaya sing wis sampeyan duga, nampilake informasi ing layar ora cukup kanggo kita. Tujuan umume program yaiku nindakake perkara sing migunani kanggo pangguna. Tegese kerep banget pangguna kudu bisa ngetik data saka keyboard.

Kaya sing ana ing output, kita uga duwe obyek khusus kanggo input data - System.in. Nanging, sayangé kanggo kita, ora trep kaya sing dikarepake. Ngidini kita maca data saka keyboard siji karakter sekaligus.

Kanggo nambah iki, kita bakal nggunakake kelas liyane sing, nalika dipasangake karo obyek System.in, bakal menehi kita kabeh sing perlu. Wiwit jaman biyen, Jawa wis ana kelas-kelas sing cocog karo saben acara. Lan saiki kita bakal ngerti salah sijine.


2. Scannerkelas

Kelas Scanner(jeneng lengkap: java.util.Scanner) bisa maca data saka macem-macem sumber, contone konsol, file, lan Internet. Yen kita pengin maca data saka keyboard, mula kita kudu ngliwati obyek kasebut System.inminangka argumen sing bakal dadi sumber data. Banjur obyek Scanner bakal nemtokake apa sing kudu ditindakake.

Maca saka keyboard nggunakake Scannerobyek bakal katon kaya iki:

Kode Panjelasan
Scanner console = new Scanner(System.in);
String name = console.nextLine();
int age = console.nextInt();
Kita nggawe Scannerobyek.
Kita maca baris teks saka keyboard.
Kita maca nomer saka keyboard.

Iku katon gampang, nanging apa iku pancene prasaja?

Aku mikir sampeyan kudu duwe akeh pitakonan, lan saiki kita bakal mangsuli.

Nanging pisanan, ayo nuduhake conto program lengkap sing nggunakake Scannerkelas:

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. Nggawe Scannerobyek

Pitakonan pisanan yaiku apa baris iki Scanner console = new Scanner (System.in);?

Baris iki bisa uga mbingungake, nanging sampeyan bakal weruh kabeh sing padha. Dadi, kita mikir penting kanggo nerangake apa sing kedadeyan ing kene.

Elinga carane biasane nggawe variabel kanthi teks:

String str = "text";
Deklarasi lan initializing variabel string

Kaping pisanan, kita nulis jinis variabel ( String), banjur jenenge ( str), lan pungkasane, sawise tandha padha, kita nulis nilai kasebut.

Garis mbingungake kita sejatine padha:

Scanner console = new Scanner(System.in);
Deklarasi lan initializing Scannervariabel

Kabeh ing sisih kiwa tandha padha yaiku deklarasi variabel sing dijenengi consolejinis Scanner. Sampeyan bisa uga nelpon s utawa scannermalah keyboard. Banjur kode bakal katon kaya iki:

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();

Aku sing nggawe kabeh luwih cetha.

Nanging kode ing sisih tengen tandha padha rada rumit. Aku saiki referring kanggo new Scanner(System.in); Sing ngandika, ana apa-apa gaib kedaden kene uga.

Ing kode iki, kita marang mesin Jawa: nggawe obyek anyar (tembung newkunci) kang jinis Scanner , maringaken ing System.inobyek minangka sumber data kanggo Scannerobyek mentas digawe.

Sawise nglakokake kabeh baris iki, kita bakal duwe Scannervariabel sing dijenengi console program sing bakal digunakake kanggo maca data saka keyboard.


4. Dhaftar cara

Ing conto ing ndhuwur, Scanner consolevariabel kita nyimpen referensi menyang Scannerobyek.

Kanggo nelpon metode ing obyek sing dirujuk dening variabel, sampeyan kudu nulis titik sawise jeneng variabel, banjur jeneng metode lan argumen apa wae. Tampilan umum perintah kasebut yaiku:

variable.method(arguments);
Nelpon metode ing obyek sing dirujuk dening variabel

Tuladha:

System.out.println("Hello");
System.out.println(1);

Yen sampeyan ora arep ngirim argumen menyang fungsi, sampeyan mung nulis kurung kosong:

variable.method();
Nelpon metode tanpa menehi argumen

Tuladha:

System.out.println();

5. input console

Nalika kita duwe Scannerobyek, iku gampang kanggo njupuk data saka keyboard.

Kanggo maca baris saka keyboard , sampeyan butuh printah iki:

String str = console.nextLine();

Nalika eksekusi program tekan baris iki, bakal ngaso lan ngenteni pangguna ngetik data banjur pencet enter. Banjur kabeh sing dilebokake pangguna disimpen ing variabel str.

Kanggo maca nomer saka keyboard , sampeyan butuh printah iki:

int number = console.nextInt();

Kabeh ing kene kaya prentah sadurunge. Nalika eksekusi program tekan baris iki, bakal ngaso lan ngenteni pangguna ngetik data banjur pencet enter. Sawise iku, kabeh sing dilebokake pangguna diowahi dadi nomer lan disimpen ing numbervariabel kasebut.

Yen pangguna ngetik data sing ora bisa diowahi dadi integer, program bakal ngasilake kesalahan lan metu.

Kanggo maca angka pecahan saka keyboard , sampeyan butuh printah iki:

double number = console.nextDouble();

Pernyataan iki meh padha karo metode kasebut nextInt(), mung mriksa manawa data sing dilebokake bisa diowahi dadi doublenomer.

Conto program sing maca rong angka saka keyboard lan nampilake jumlahe ing 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);
   }
}
Cathetan

Pangguna bisa ngetik sawetara nomer ing baris siji, misahake karo spasi: cara saka kelas Scannerngerti carane nangani iki. Sing jarene, program maca angka mung sawise pangguna mencet Enter.



6. Cara liya saka Scannerkelas

Miturut cara, cara ing ndhuwur ora kabeh sing Scannerditawakake kelas. Daftar lengkap metode katon kaya iki:

Metode Katrangan
nextByte()
Maca data lan ngowahi dadi abyte
nextShort()
Maca data lan ngowahi dadi ashort
nextInt()
Maca data lan ngowahi dadiint
nextLong()
Maca data lan ngowahi dadi along
nextFloat()
Maca data lan ngowahi dadi afloat
nextDouble()
Maca data lan ngowahi dadi adouble
nextBoolean()
Maca data lan ngowahi dadi aboolean
next()
Maca siji "token". Token dipisahake kanthi spasi utawa pencet tombol enter
nextLine()
Maca kabeh baris

Ana uga cara sing ngidini sampeyan mriksa token sabanjure ing input tanpa njupuk (supaya ngerti cara sing digunakake kanggo maca).

Metode Katrangan
hasNextByte()
Apa ana byte? Apa input bisa diowahi dadi a byte?
hasNextShort()
Apa ana short? Apa input bisa diowahi dadi a short?
hasNextInt()
Apa ana int? Apa input bisa diowahi dadi int?
hasNextLong()
Apa ana long? Apa input bisa diowahi dadi a long?
hasNextFloat()
Apa ana float? Apa input bisa diowahi dadi a float?
hasNextDouble()
Apa ana double? Apa input bisa diowahi dadi a double?
hasNextBoolean()
Apa ana boolean? Apa input bisa diowahi dadi a boolean?
hasNext()
Apa ana token liyane?
hasNextLine()
Apa ana baris liyane?

7. Maca data saka senar

Kita sadurunge kasebut yen Scannerkelas bisa maca data saka macem-macem sumber. Salah sawijining sumber kasebut yaiku senar teks .

Iku katon kaya iki:

String str = "text";
Scanner scanner = new Scanner(str);

Nalika nggawe Scannerobyek, kita pass ing senar strtinimbang System.inobyek. Lan saiki scannerobyek bakal maca data saka senar. Tuladha:

Kode program: Katerangan:
import java.util.Scanner;
public class Solution {
   public static void main(String[] args)
   {
      String str = "10 20 40 60";
      Scanner scanner = new Scanner(str);
      int a = scanner.nextInt();
      int b = scanner.nextInt();

      System.out.println(a + b);
   }
}




//a == 10; 
// b == 20; 
Output layar bakal dadi:30