有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用nextLine()方法

<> >考虑代码:

import java.util.*;

public class TestClass
{
  public static void main(String[] args)
  {
      Scanner input= new Scanner ("34\n567");

      while(input.hasNext())
      {
          System.out.println(input.nextLine());
      }

      input.close();
  }
}

我得到的输出:

34
567

当我试图通过nextLine()读取字符串时,它不应该这样读取,因为它必须仅在行分隔符处终止,并且\n在Java中不是行分隔符

那么这是怎么发生的呢


共 (2) 个答案

  1. # 1 楼答案

    nextLine()是正则表达式“\r\n |[\n\r\u2028\u2029\u0085]”的基。这接受受支持的java平台格式的任何换行符,并且不限于jvm实例实际运行的平台格式。事实上,java中用于检测换行的大多数方法都是这样工作的。因此,对于换行符的定义是不正确的

  2. # 2 楼答案

    试试这个

        String s = "a\r\nb";
        for (String str : s.split(System.getProperty("line.separator"))) {
            System.out.println(str);
        }
        System.out.println("Length:"+s.split(System.getProperty("line.separator")).length);
    

    \r\n表示新行

    输出

     a
     b
     Length:2