2017-03-13 202 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");