CodeGym /Blog Java /rawak /Kaedah Pengimbas nextLine() dalam Java
John Squirrels
Tahap
San Francisco

Kaedah Pengimbas nextLine() dalam Java

Diterbitkan dalam kumpulan
Pengimbas , kelas dalam bahasa pengaturcaraan Java yang boleh menghuraikan jenis dan rentetan primitif menggunakan ungkapan biasa. Kaedah pengimbas nextLine() dalam Java mengalihkan pengimbas ini melepasi baris semasa dan mengembalikan input yang dilangkau. Lagi mengenai nextLine() dan Scanner kemudian dalam artikel ini.

Secara ringkas tentang kelas Pengimbas dan cara ia berfungsi

Secara kasarnya, kelas java.util.Scanner membolehkan anda membaca input daripada pelbagai sumber, termasuk konsol. Ia benar-benar kelihatan serupa dengan pengimbas klasik. Peranti perkakasan ini mempunyai seni bina yang rumit, tetapi agak mudah untuk menerangkan kerjanya. Pengimbas membaca tarikh yang diletakkan pengguna padanya, seperti kertas dan menyimpan data dalam ingatan seperti gambar atau fail pdf. Pengimbas Java, sama seperti yang sebenar, membaca data daripada sumber yang anda tentukan untuknya. Contohnya, daripada rentetan, daripada fail, daripada konsol. Kemudian ia mengiktiraf maklumat ini dan memprosesnya mengikut keperluan. Sebagai contoh, program meminta untuk memasukkan beberapa data daripada konsol dan membacanya atau mahu membacanya daripada fail. Untuk operasi ini, pengimbas mempunyai beberapa kaedah digabungkan dengan perkataan "seterusnya". Seperti next() , nextLine() , nextInt() , nextDouble() .

kaedah nextLine().

Seperti yang telah kami katakan di atas, objek pengimbas membahagikan input kepada token menggunakan corak pembatas, ruang kosong secara lalai, tetapi ia boleh digantikan dengan rentetan ( java.lang.String ) atau ungkapan biasa ( java.util.regex. Corak ). Token yang terhasil kemudiannya boleh ditukar kepada nilai pelbagai jenis menggunakan pelbagai kaedah seterusnya. Kaedah pengimbas nextLine() dalam Java memajukan pengimbas ini melepasi baris semasa dan mengembalikan input yang telah dilangkau. General next() mencari dan mengembalikan token lengkap seterusnya daripada pengimbas ini. kaedah nextLine() terus mencari input untuk pemisah baris, jadi ia mungkin menampan semua input mencari baris untuk dilangkau jika tiada pemisah baris. Kaedah ini membuang pengecualian seterusnya:
  • NoSuchElementException: membuang jika tiada baris ditemui
  • IllegalStateException: melontar jika pengimbas ini ditutup

contoh nextLine().

Katakan kami mahu pengguna memasukkan sebarang perkataan atau frasa ke dalam konsol dan kami boleh menunjukkan kepadanya perkataan atau frasa yang dia masukkan.
import java.util.Scanner;
//…scanner.nextLine() example
public class ScannerTest {
   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any phrase and I'll repeat it!... ");
      //here we are reading the next line:
       String sentence = scan.nextLine();
       System.out.println(sentence);
   }
}
Output boleh sebagai contoh berikut:
Masukkan mana-mana frasa dan saya akan mengulanginya!... ini adalah frasa saya di sini adalah frasa saya
Jika anda menggunakan kaedah next() dan bukannya nextLine() , anda hanya akan mendapat perkataan pertama ayat anda.
Masukkan mana-mana frasa dan saya akan ulangi!... inilah frasa saya di sini
Mari kita dapatkan contoh kaedah pengimbas yang berfungsi nextLine() untuk membaca daripada fail. Untuk contoh ini saya telah mencipta fail txt myTest.txt. Terdapat dua baris dalam fail itu:
fail ujian saya dan baris seterusnya saya ada di sini
Berikut ialah program yang membaca dua baris daripada fail.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {

   public static void main(String[] args) throws FileNotFoundException {
       Scanner scanner = new Scanner(new File("d://myTest.txt"));

       String textFromFile1 = scanner.nextLine();
       String textFromFile2 = scanner.nextLine();
       System.out.println(textFromFile1);
       System.out.println(textFromFile2);
       scanner.close();

   }
}
Outputnya ialah:
fail ujian saya dan baris seterusnya saya ada di sini
Jika laluan anda ke fail itu salah atau fail dengan nama sedemikian tidak wujud, anda akan mendapat output seterusnya:
Pengecualian dalam benang "utama" java.io.FileNotFoundException: d:\myTest.txt di java.base/java.io.FileInputStream.open0(Kaedah Asli) di java.base/java.io.FileInputStream.open(FileInputStream.java :213) di java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) di java.base/java.util.Scanner.<init>(Scanner.java:639) di ScannerTest.main( ScannerTest.java:8)
Jika program menemui fail anda, tetapi ia kosong, anda akan mendapat NoSuchElementException:
Pengecualian dalam benang "utama" java.util.NoSuchElementException: Tiada baris ditemui di java.base/java.util.Scanner.nextLine(Scanner.java:1651) di ScannerTest.main(ScannerTest.java:10)
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION