java - 检测 `char[]` 中的换行符

标签 java text character

我使用以下方法来检测字符是否为空格:

Character.isWhiteSpace(char character);

现在我需要检测所有平台(Linux)的所有换行符(\n\r 等) 、Windows、Mac OSX 等)。有没有类似的方法来检测字符是否换行?如果没有,我如何检测所有可能的变体?


根据评论编辑:因为我不知道换行符可以由多个字符表示,所以我在问题中添加了一些上下文。

我正在 Writer 中实现 write(char[] buffer, int offset, int length) 方法(参见 Javadoc )。除了其他操作之外,我还需要检测 buffer 中的换行符。我试图避免从 buffer 创建 String 以保留内存,因为我已经看到有时 buffer 太大(几 MB)。

有没有什么方法可以在不创建 String 的情况下检测换行符?

最佳答案

使用正则表达式为您完成工作:

if (!String.valueOf(character).matches("."))

如果没有 DOTALL 开关,点匹配除换行符外的所有字符,根据 documentation包括:

  • 换行(换行)字符('\n'),
  • 一个回车符紧跟一个换行符(“\r\n”),
  • 一个独立的回车符('\r'),
  • 下一行字符('\u0085'),
  • 一个行分隔符('\u2028'),或者
  • 段落分隔符 ('\u2029)。

请注意,存在换行符序列,例如\r\n,但您询问的是个别 个字符。正则表达式解决方案适用于一个或两个字符输入。

关于java - 检测 `char[]` 中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915073/

相关文章:

c - 将数组的字符元素替换为用户输入输入的另一个字符

java - 在常数时间内连接两个 java.util.LinkedList

java - 使用java搜索并打印文本文件

java - 为什么Java中一个字符减去另一个字符会返回一个整数

python - 从 Python 数据框中文本列中的特定单词创建虚拟变量和分类变量

unicode - 如何区分哪些 Unicode 字符是字母(单词),哪些是标点符号?

arrays - 如何在 Swift 中的特定索引处获取和设置字符串的字符

Java改变最终数组元素的值

Java - Java 中的内存泄漏有何危害?它怎么可能被用于不良目的呢?

java - 如何将KStream的Object类型的值存储在Hashmap中?