如何将System.getProperty("line.separator");
返回的值转换为其字符串表示形式。
例如,如果值为"\n"
,我希望字符由['\' + 'n']
字符组成,如果值为"\r\n"
=> ['\','r','\','n']
这有意义吗?
我想到了一些非常微不足道的想法,我想知道不同的想法。
修改
Doh !! ..经过一番思考(确实很少)我想出了显而易见的事情:
String lineSeparatorRepresentation
= System.getProperty("line.separator").equals("\n")?"\\n":"\\r\\n";
答案 0 :(得分:5)
查看Apache Commons Lang的StringEscapeUtils类的escapeJava方法。如果您不想依赖Commons Lang,请参阅他们的source code了解它们是如何实现的 - 因为可能的转义集非常低,所以它只是一个小的查找表。
答案 1 :(得分:2)
只需将每个可能的结果转换为各自的字符串即可。如果结果为\n
,则转换为\\n
等。有关常规解决方案,请参阅StringEscapeUtils.escapeJava
:http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html#escapeJava(java.lang.String)
答案 2 :(得分:0)
lineSeparatorRepresentation.split("(?<=\\G.{1})");