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

Jav*_*dez 7 java text character

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

Character.isWhiteSpace(char character);
Run Code Online (Sandbox Code Playgroud)

现在我需要检测的所有变种换行符(\n,\r,等)适用于所有平台(Linux操作系统,在Windows,Mac OSX,等).有没有类似的方法来检测字符是否换行?如果没有,我如何检测所有可能的变体?


从评论中编辑:由于我不知道换行符可以用几个字符表示,我在问题中添加了一些上下文.

我正在实现该write(char[] buffer, int offset, int length)方法Writer(参见Javadoc).除了其他操作,我需要检测内部的换行符buffer.我试图避免创建Stringbuffer保存记忆,因为我已经看到了,有时buffer过大(几MB).

有没有办法检测断行而不创建String

Boh*_*ian 7

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

if (!String.valueOf(character).matches("."))
Run Code Online (Sandbox Code Playgroud)

如果没有DOTALL开关,则点匹配换行符之外的所有字符,根据文档包括:

  • 换行符(换行符)('\n'),
  • 一个回车符后面跟一个换行符("\r\n"),
  • 一个独立的回车符('\r'),
  • 下一行字符('\u0085'),
  • 行分隔符('\u2028')或
  • 段落分隔符('\u2029).

请注意,例如,存在换行符序列\r\n,但您询问了各个字符.正则表达式解决方案可以使用一个或两个char输入.