Java中的replaceAll()函数扫描程序

时间:2014-10-05 18:08:40

标签: java java.util.scanner replaceall

我想用空格替换\ 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

3 个答案:

答案 0 :(得分:3)

replaceAll("\\n", " " )使用正则表达式作为第一个参数,"\\n"被Java正则表达式引擎视为\n,表示行分隔符,而不是\n个字符。如果您想要替换\n文字(两个字符),则需要

首选方式是使用

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"))

这里描述的所有内容:https://stackoverflow.com/a/5518515/4017037