2017-03-13 200 views
0

我在csv文件中有一個Address列,我需要替換其中的一部分。它包含Street,Drive,Avenue等的縮寫......我知道replacedStr不是這樣做的準確方法,而且我正在使用下面的方法遇到問題。我有地址,如Stream Way St被替換爲Streetream Way Street。我怎樣才能做到這一點?替換字符串的中間部分

String str = "1234 Stack Overflow Dr"; 
String replacedStr = str.ReplaceAll("Dr","Drive"); 

System.out.println(str); 
System.out.println(replacedStr); 

輸出:

1234 Stack Overflow Dr 
1234 Stack Overflow Drive ----------- Requested 
+2

你面臨什麼問題? 'str.replaceAll(「Dr」,「Drive」)'可以很好地滿足您的要求 – Pons

+0

這聽起來像是awk或sed的工作。 –

+0

我有地址,例如'Stream Way St',它被替換成'Streetream Way Street'。 –

回答

3

嘗試此,

String str = "1234 StaDrck Overflow Dr"; 
String replacedStr = str.replaceAll("\\bDr\\b","Drive"); 

另一個例如,

String str = "Stream Way St"; 
    String replacedStr = str.replaceAll("\\bSt\\b","Street"); 


    System.out.println(str); 
    System.out.println(replacedStr); 

輸出

'STR' - 流路聖

'replacedStr' - 流單向街

+0

感謝Pons的幫助。 –

+0

此方法不適用於例如「聖埃爾莫大街」作爲輸入字符串。 –

3

讓我們用正則表達式!

正則表達式/\bDr\b/應該匹配你所需要的(如果你需要匹配那些,用St和Av替換Dr)。 java的等價物是\\bDr\\b

newString = oldString.replace("\\bDr\\b", "Drive");