Вы можете выполнить поиск по строке и заменить все символьные версии/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
@ModDL: Мы не можем изменить строку, поскольку она задана другим персонажем ... – Abhinav