Scanner , isang klase sa Java programming language na maaaring mag-parse ng mga primitive na uri at string gamit ang mga regular na expression. Ang nextLine() na pamamaraan ng scanner sa Java ay inililipat ang scanner na ito lampas sa kasalukuyang linya at ibinabalik ang nalaktawan na input. Higit pa sa nextLine() at Scanner mamaya sa artikulong ito.
Maikling tungkol sa klase ng Scanner at kung paano ito gumagana
Sa madaling salita, binibigyang-daan ka ng klase ng java.util.Scanner na magbasa ng input mula sa iba't ibang source, kabilang ang console. Talagang kamukha ito ng isang klasikal na scanner. Ang hardware device na ito ay may kumplikadong arkitektura, ngunit ito ay medyo simple upang ilarawan ang trabaho nito. Binabasa ng Scanner ang isang petsa na inilalagay ng isang user dito, tulad ng mga papel at pinapanatili ang data sa memorya tulad ng isang larawan o pdf file. Ang Java scanner, tulad ng isang tunay, ay nagbabasa ng data mula sa pinagmulan na iyong tinukoy para dito. Halimbawa, mula sa isang string, mula sa isang file, mula sa isang console. Pagkatapos ay kinikilala nito ang impormasyong ito at pinoproseso ito kung kinakailangan. Halimbawa, hinihiling ng program na magpasok ng ilang data mula sa console at binabasa ito o gustong basahin ito mula sa isang file. Para sa operasyong ito, ang scanner ay may ilang mga pamamaraan na pinagsama sa salitang "susunod". Gaya ng next() , nextLine() , nextInt() , nextDouble() .nextLine() na pamamaraan
Gaya ng sinabi namin sa itaas, hinahati ng object ng scanner ang input sa mga token gamit ang delimiter pattern, whitespace bilang default, ngunit maaari itong palitan ng string ( java.lang.String ) o isang regular na expression ( java.util.regex. Pattern ). Ang mga resultang token ay maaaring ma-convert sa mga halaga ng iba't ibang uri gamit ang iba't ibang mga susunod na pamamaraan. Ang pamamaraan ng Scanner nextLine() sa Java ay nagsusulong sa scanner na ito lampas sa kasalukuyang linya at ibinabalik ang input na nalaktawan. Hinahanap at ibinabalik ng General next() ang susunod na kumpletong token mula sa scanner na ito. Ang nextLine() na pamamaraan ay patuloy na naghahanap sa input para sa isang line separator, kaya maaari itong buffer sa lahat ng input na naghahanap ng linyang lalaktawan kung walang line separator. Ang pamamaraang ito ay nagtatapon ng mga susunod na pagbubukod:- NoSuchElementException: nagtatapon kung walang nakitang linya
- IllegalStateException: nagtatapon kung sarado ang scanner na ito
nextLine() halimbawa
Sabihin nating gusto naming magpasok ang user ng anumang salita o parirala sa console, at maipapakita namin sa kanya kung anong salita o parirala ang ipinasok niya.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);
}
}
Ang output ay maaaring halimbawa ang susunod:
Maglagay ng anumang parirala at uulitin ko ito!... narito ang aking parirala narito ang aking parirala
Kung gagamit ka ng next() method sa halip na nextLine() , makukuha mo lang ang unang salita ng iyong pangungusap.
Maglagay ng anumang parirala at uulitin ko ito!... narito ang aking parirala dito
Magkaroon tayo ng isang halimbawa ng isang gumaganang scanner na nextLine() na paraan upang basahin mula sa isang file. Para sa halimbawang ito gumawa ako ng txt file myTest.txt. Mayroong dalawang linya sa file na iyon:
ang aking test file at ang aking susunod na linya ay narito
Narito ang isang programa na nagbabasa ng dalawang linya mula sa isang file.
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();
}
}
Ang output ay:
ang aking test file at ang aking susunod na linya ay narito
Kung mali ang iyong landas patungo sa file o ang file na may ganoong pangalan ay hindi umiiral, makukuha mo ang susunod na output:
Exception sa thread na "main" java.io.FileNotFoundException: d:\myTest.txt sa java.base/java.io.FileInputStream.open0(Native Method) sa java.base/java.io.FileInputStream.open(FileInputStream.java :213) sa java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) sa java.base/java.util.Scanner.<init>(Scanner.java:639) sa ScannerTest.main( ScannerTest.java:8)
Kung nahanap ng program ang iyong file, ngunit ito ay walang laman, makakakuha ka ng NoSuchElementException:
Exception sa thread na "main" java.util.NoSuchElementException: Walang nakitang linya sa java.base/java.util.Scanner.nextLine(Scanner.java:1651) sa ScannerTest.main(ScannerTest.java:10)