如何使Scanner.next()保留最后一个“\ n”?

问题描述 投票:1回答:2

我有一个内容为"hi there tom!\n"的文件。也就是说,文件的最末端有一个换行符。

在该文件上运行此代码时:

File file = new File(path.toString());
String content = new Scanner(file).useDelimiter("\\Z").next();

\n中不存在尾随的content。如何保持\n

java file java.util.scanner
2个回答
1
投票

Scanner.useDelimiter()将其论证解释为Pattern(正则表达式)。并引用Pattern的API文档:

Summary of regular-expression constructs

边界匹配器

  • \Z - 输入结束但是对于最终终结符,如果有的话
  • \z - 输入结束

因此,为了在不忽略最后一行终止符的情况下读取文件的末尾,将参数更改为useDelimiter()"\\Z"更改为"\\z"


1
投票

使用nextLine()而不是next()来消耗每行末尾的\n字符。

© www.soinside.com 2019 - 2024. All rights reserved.