CodeGym/Java 博客/随机的/Java 中的扫描器 nextLine() 方法
John Squirrels
第 41 级
San Francisco

Java 中的扫描器 nextLine() 方法

已在 随机的 群组中发布
个会员
Scanner,Java 编程语言中的一个类,可以使用正则表达式解析原始类型和字符串。Java 中的nextLine ()扫描器方法将此扫描器移动到当前行之外并返回跳过的输入。本文稍后将 详细介绍nextLine()Scanner 。

简要介绍 Scanner 类及其工作原理

粗略地说,java.util.Scanner类允许您从各种来源(包括控制台)读取输入。它看起来确实与经典扫描仪相似。该硬件设备具有复杂的架构,但描述其工作却非常简单。扫描仪读取用户在其上放置的日期(例如纸张),并将数据(如图片或 pdf 文件)保存在内存中。Java 扫描器就像真实的扫描器一样,从您为其指定的源读取数据。例如,来自字符串、文件、控制台。然后它会识别该信息并根据需要进行处理。例如,程序要求从控制台输入一些数据并读取它,或者想要从文件中读取它。对于此操作,扫描仪有多种与“下一步”一词结合的方法。例如next()nextLine()nextInt()nextDouble()

nextLine() 方法

正如我们上面所说,扫描器的对象使用分隔符模式(默认为空格)将输入分割为标记,但可以用字符串(java.lang.String)或正则表达式(java.util.regex.图案)。然后可以使用各种 next 方法将生成的令牌转换为各种类型的值。Java 中的Scanner nextLine()方法使扫描器前进到当前行并返回跳过的输入。一般next()查找并返回来自此扫描器的下一个完整标记。 nextLine()方法继续在输入中搜索行分隔符,因此如果没有行分隔符,它可能会缓冲所有输入以查找要跳过的行。此方法抛出以下异常:
  • NoSuchElementException:如果未找到行,则抛出异常
  • IllegalStateException:如果此扫描仪关闭,则抛出异常

nextLine() 示例

假设我们希望用户在控制台中输入任何单词或短语,并且我们可以向他显示他输入的单词或短语。

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);
   }
}
输出可以是例如以下内容:
输入任何短语,我会重复它!...这是我的短语这是我的短语
如果您使用next()方法而不是nextLine(),您将只得到句子的第一个单词。
输入任何短语,我会重复它!...这是我的短语
让我们看一个工作扫描仪nextLine()方法从文件读取 的示例。对于本示例,我创建了一个 txt 文件 myTest.txt。该文件中有两行:
我的测试文件和我的下一行在这里
这是一个从文件中读取两行的程序。

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

   }
}
输出是:
我的测试文件和我的下一行在这里
如果文件路径错误或具有该名称的文件不存在,您将得到以下输出:
线程“main”中的异常 java.io.FileNotFoundException: d:\myTest.txt 在 java.base/java.io.FileInputStream.open0(本机方法) 在 java.base/java.io.FileInputStream.open(FileInputStream.java :213) 在 java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) 在 java.base/java.util.Scanner.<init>(Scanner.java:639) 在 ScannerTest.main( ScannerTest.java:8)
如果程序找到了您的文件,但它是空的,您将收到 NoSuchElementException:
线程“main”中的异常 java.util.NoSuchElementException:在 ScannerTest.main(ScannerTest.java:10) 的 java.base/java.util.Scanner.nextLine(Scanner.java:1651) 处找不到行
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论