Java - 如何将特殊字符转换为字符串

问题描述:

Java似乎有非常好的字符串处理。尽管如此,我仍然遇到最简单的问题。我需要动态字符串(它们在运行时更改),因此字符串类型不是一个好选择,因为它们是不可变的。所以我使用char数组。设置一种痛苦,但至少它们是可以修改的。我想创建一个带有回车/换行对(或其他控制字符)的字符串常量。在C/C++中,你可以这样做:Java - 如何将特殊字符转换为字符串

char myString[100]; 
myString = "This is a string with a CR/LF pair\x0D\x0A"; 

是的,我知道在Java中可以使用“\ r”。是的,我知道,你可以使用:

myString[34] = 0x000D; 
myString[35] = 0x000A; 

,并在Java中,你真的无法使用字符串字面常量初始化一个字符数组(可以吗??)。那么如何初始化char数组就成了问题呢?

+2

它*真的*不清楚为什么你不想只使用'\ r \ n'。目前还不清楚问题的第一部分与第二部分有什么关系...... – 2012-07-16 22:39:33

+0

http://*.com/questions/3613759/x-escape-in​​-java – 2012-07-16 22:39:34

+0

看看Java的StringBuilder类是一个类,它是很便宜修改为一个字符串。 – CosmicComputer 2012-07-16 22:39:54

你可以做

char[] myString = 
    "This is a string with a CR/LF pair\u000D\u000A".toCharArray(); 

如果是这样的问题。

此外,有StringBuilder工作可变字符串(它只是包装一个字符[])。

+0

字符串是不可变的,所以我不能使用String类。 – Batdude 2012-07-16 22:41:45

+0

@Batdude:你可以在String和char []之间进行转换。 – Thilo 2012-07-16 22:43:59

使用String.ToCharArray

char[] chars = "This is a string\r\n".ToCharArray(); 

你也可以使用一个StringBuilder这是可变的。