琐碎的转换

时间:2011-02-25 17:46:32

标签: java

如何将System.getProperty("line.separator");返回的值转换为其字符串表示形式。

例如,如果值为"\n",我希望字符由['\' + 'n']字符组成,如果值为"\r\n" => ['\','r','\','n']这有意义吗?

我想到了一些非常微不足道的想法,我想知道不同的想法。

修改

Doh !! ..经过一番思考(确实很少)我想出了显而易见的事情:

String  lineSeparatorRepresentation 
      = System.getProperty("line.separator").equals("\n")?"\\n":"\\r\\n";

3 个答案:

答案 0 :(得分:5)

查看Apache Commons Lang的StringEscapeUtils类的escapeJava方法。如果您不想依赖Commons Lang,请参阅他们的source code了解它们是如何实现的 - 因为可能的转义集非常低,所以它只是一个小的查找表。

答案 1 :(得分:2)

只需将每个可能的结果转换为各自的字符串即可。如果结果为\n,则转换为\\n等。有关常规解决方案,请参阅StringEscapeUtils.escapeJavahttp://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html#escapeJava(java.lang.String

答案 2 :(得分:0)

lineSeparatorRepresentation.split("(?<=\\G.{1})");