当前位置: 首页 > 知识库问答 >
问题:

使用Java扫描仪时如何检查\n?

蓟俊杰
2023-03-14

我正在尝试编写一个扫描器,以便每次\n被检测到,它会扫描那之后的行,直到一个新的\n出现。我第一次试过这样的东西。

import java.util.Scanner;

public class test{
    
    public static void main(String[] args) {
        
        String input = "first line \nsecond line \nthird line";
        
        Scanner sc = new Scanner(input);
        
        while(sc.hasNextLine()) {
            String stuff = sc.nextLine();
            System.out.println(stuff);
        }
        sc.close();
    }
}

它起作用,输出为

first line 
second line 
third line

然而,当我尝试用扫描器(System.in)做同样的事情时,即使输入相同,它也不能以同样的方式工作

import java.util.Scanner;

public class test{
    
    public static void main(String[] args) {
        System.out.println("Please enter things");
        
        Scanner cmd = new Scanner(System.in); //input: "first \n second \n third"
        
        String input = cmd.nextLine();
        
        Scanner sc = new Scanner(input);
        
        while(sc.hasNextLine()) {
            String stuff = sc.nextLine();
            System.out.println(stuff);
        }
        cmd.close();
        sc.close();
    }
}

输出:

first \n second \n third

编辑:如果输入为

first
second
third

并立即输入提示符,那么Scanner.nextLine()是否就足够了?

共有1个答案

淳于典
2023-03-14
System.out.println("Please enter things");
    Scanner cmd = new Scanner(System.in); //input: "first \n second \n third"
    
    while(cmd.hasNext()) {
        String word = cmd.next();
        if(word.equals("\\n")) {
            System.out.println();
        }else {
            System.out.print(word);
            
        }
    }
 类似资料:
  • 问题内容: 我搜索了类似的问题,但没有一个帮助。 考虑一个文件: 你好你好吗? 当时你在哪里? 我想在每行结束后进行一些操作。如果我使用它,则不会告诉我何时到达第一行的末尾。 我也看到了,但是它只会告诉我是否存在另一行。 问题答案: 考虑使用多个扫描仪,一个扫描仪获取每一行,另一扫描仪扫描每行。我唯一要说明的是,使用完内部扫描仪后,请务必确保将其关闭。实际上,使用完 所有 扫描仪后,您将需要关闭它

  • 我是java新手,我的任务是使用扫描器读取数组,并在另一种方法中读取int。 我正在做的是计算一只兔子到达河对岸所需的最小跳跃次数。数组中的int表示从河的一边开始的石头的距离,另一个int表示石头的数量。兔子能跳的最远距离是50。 对于输入和输出: 输入n:7(输入,河中的石头数)32 46 70 85 96 123 145(输入,石头与起点之间的距离,最后一个数字是河的宽度,即目的地(河对岸)

  • 问题内容: 请问我关于扫描仪的问题;我在一家小公司工作;我们有一个软件;它生成一个大文本文件;而且我们必须从中得到一些有用的信息; 我想用Java编写一个简单的应用程序以节省时间;你能指导我吗? 例如我要这个输出; 输出量 RFID:25蓝色:562 WifiID:2610 RFID:33 RFID数量:2 例如;这是我的文本文件,因为使用我们的软件生成的每个文件都有14000行:) 我用此源代码

  • 嗨,我正在编写一个程序,它使用Scanner从用户那里获取输入,然后使用布尔方法检查输入的长度是否不超过六个字符。问题是,如果长度小于六个,我使用了while循环来不断请求输入;但是在第一次错误输入后,如果你插入一串六个字母或更长的字符串,循环仍然会继续。这是程序: 谢谢

  • 在分离标记之前,我试图检查扫描仪是否有多个标记。我目前正在尝试使用扫描仪。hasNext()(我的扫描仪的名字是sc)。如果用户输入“string int”,那么我不想打印“enter age”或“enter grade” 目前,无论输入是什么,我的程序都会跳过if语句。如果我把它拿走!然后,即使输入是一行,这些行也会打印出来。他们似乎也打印后,下一个是我发现奇怪的。我将非常感谢您的帮助!

  • 我正在为课堂做作业。由于某种原因,程序完全跳过了用户应该键入变量的部分。我想不出任何理由为什么它会以这种方式运行,因为我的其余代码位于部分之后(它要求诸如和类型之类的东西)工作正常且有序。