我想用空格替换\ n字符。以下代码无效。有什么建议吗?
System.out.println("Enter a string:");
Scanner sc=new Scanner(System.in);
String str=sc.nextLine().toString();
//String str="one\ntwo";
if(str.contains("\\n")){
System.out.println("yes");
str=str.replaceAll("\\n", " " );
}
System.out.println("str : "+str);
输入字符串是一个\ ntwo
答案 0 :(得分:3)
replaceAll("\\n", " " )
使用正则表达式作为第一个参数,"\\n"
被Java正则表达式引擎视为\n
,表示行分隔符,而不是\
和n
个字符。如果您想要替换\n
文字(两个字符),则需要
\
in regex itself replaceAll("\\\\n", " " );
replace
代替replaceAll
,它会为您逃脱首选方式是使用
str = str.replace("\\n", " " );
BTW sc.nextLine()
已经返回String,因此不需要
sc.nextLine().toString();
// ^^^^^^^^^^^ this part is unnecessary
答案 1 :(得分:1)
试试这个:
str=str.replaceAll("\\\\n", " " );
OR
str=str.replace("\\n", " " );
答案 2 :(得分:0)
你的病情不好
if(str.contains("\\n")) -> if(str.contains("\n"))