我使用以下方法来检测字符是否为空格:
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/