您可以搜索字符串并用// n替换/ n的所有字符版本。
String s = convertNewLineChars("\n");
public String convertNewLineChars(String s)
{
//for each character in string, replace '\n' with \\n
}
编辑
使用枚举所有的可能的特殊字符
public enum SpecialCharacter
{
NEWLINE('\n', "\\\\n"), //see note at the bottom of the answer for why
RETURN('\r', "\\\\r"); //there are four backslashes.
private char character;
private String charAsString;
private SpecialCharacter(char character, String charAsString)
{
this.character = character;
this.charAsString = charAsString;
}
public char getCharacter()
{
return this.character;
}
public String getCharAsString()
{
return this.charAsString;
}
public static SpecialCharacter[] getAllCharacters()
{
return new SpecialCharacter[] {NEWLINE, RETURN}; //etc...
}
}
除去这些角色创建静态方法
public static String removeSpecialCharacters(String s)
{
String returnString = s;
for (SpecialCharacter character : SpecialCharacter.getAllCharacters())
{
returnString = returnString.replaceAll("["+character.getCharacter()+"]", character.getCharAsString());
}
return returnString;
}
然后你可以说些什么如:
String s = removeSpecialCharacters("\nfdafhoean\noasd\r\rjfoi");
System.out.println(s);
这将适用于您添加到枚举中的任何特殊字符。
*注意的replaceAll()会消耗额外的反斜杠...如果你简单地调用System.out.println(SpecialCharacter.NEWLINE.getCharAsString());
您将收到的\\n
输出为什么你不能改变字符串? – ModDL 2014-08-28 17:48:05
@ModDL:我们不能更改字符串,因为它是由其他人给出的... – Abhinav 2014-08-28 17:52:13