2014-10-05 70 views
0

我想用空格替換\ n字符。下面的代碼不起作用。有什麼建議麼?Java中的replaceAll()函數掃描器

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

的[替換\ n可能重複和\ r \ n與
在java](http://stackoverflow.com/questions/3056834/replace-n-and-rn-with-br-in-java) – 2014-10-05 18:14:56

回答

1

試試這個:

str=str.replaceAll("\\\\n", " "); 

OR

str=str.replace("\\n", " "); 
+0

謝謝,這工作 – Somdutta 2014-10-05 18:40:36

3

replaceAll("\\n", " ")使用正則表達式作爲第一個參數,"\\n"由Java的正則表達式引擎處理如\n代表行分隔符,而不是\n個字符。如果您想更換\n文字(兩個字符),您可能需要

首選方法是使用

str = str.replace("\\n", " "); 

BTW sc.nextLine()已經返回字符串,所以沒有必要

sc.nextLine().toString(); 
//   ^^^^^^^^^^^ this part is unnecessary 
+0

謝謝,這工作。 – Somdutta 2014-10-05 18:40:08

+0

@Somdutta歡迎您:) – Pshemo 2014-10-05 18:40:45