Java Scanner指定行分隔符

标签 java

我使用Java中的Scanner类进行IO操作。 我想读取文件中以“\n\r|[\r\n]”结尾的每一行,不包括也可能代表行分隔符的其他分隔符,例如“[\u2028\2029\0085]” 。 如果我使用 Scanner.nextLine(),除非我更改 Scanner 的源代码,否则将包含这些 un​​icode 分隔符。 如果我使用 Scanner.next("some pattern") ,空行将被忽略,这不是我所期望的。 有什么正确的方法可以做到这一点吗?谢谢。

最佳答案

扫描仪不提供覆盖其用于行结尾的模式的方法。

但是,您可以实现类似的效果:

String line = scanner.next("[\R
\u2028\u2029\u0085]");

并使用scanner.hasNext("[\R\u2028\u2029\u0085]")而不是scanner.hasNextLine()

注意:\R 是在版本 8 中引入的,表示任何“行结束”字符序列(即 \r\n\n\r 适用于 Windows、*nix 和 mac)

关于Java Scanner指定行分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62036280/

相关文章:

java - 在这种情况下如何使用@JsonProperty - jackson API with lombok

java - 在没有 java :comp/env prefix 的情况下访问 JNDI 数据源

java - JNLP 启动错误

java - 策略模式可以包含对父类的引用吗?

java - 如何在android中实现滑动 View

java - 从 Tomcat 5.5 升级到 Tomcat 7

java - Rest Dao 设计和异常处理

java - $ ("something") 在 Java 中是什么意思?

java - 在Java中可以使用迭代来生成字符串吗?

java - 绕过 Spring Security @preauthorize