【发布时间】:2014-09-18 14:12:03
【问题描述】:
我使用以下方法来检测字符是否为空格:
Character.isWhiteSpace(char character);
现在我需要检测所有平台(Linux、Windows、Mac OSX 等)的换行符(\n、\r 等)的所有变体。有没有类似的方法来检测一个字符是否是换行符?如果没有,如何检测所有可能的变体?
从 cmets 编辑:由于我不知道换行符可以由多个字符表示,因此我在问题中添加了一些上下文。
我正在Writer 中实现write(char[] buffer, int offset, int length) 方法(请参阅Javadoc)。除了其他操作,我还需要检测buffer内部的换行符。我试图避免从buffer 创建String 以保留内存,因为我已经看到有时buffer 太大(几MB)。
有没有什么方法可以在不创建String 的情况下检测换行符?
【问题讨论】:
-
检查 char 是否为 System.getProperty("line.separator")
-
“等”是什么意思?请记住,在 Windows 上,正常的分隔符是
"\r\n",所以不是单个字符。你想解决什么更大的问题?如果您尝试将字符串分成几行,请考虑使用BufferedReader包装StringReader。 -
@JonSkeet 不知道换行符可以用两个字符表示,谢谢建议
-
@ThusithaThilinaDayaratne 感谢您的建议,但我正在寻找一种逐个字符检测换行符的方法
-
@JaviFernández,这应该是要走的路。但是,您不能在 Java 中“逐个字符”地测试换行符,因为它通常是一个序列。所以需要在String中找到序列...