請問我需要一些人來幫助我解決這個問題,我想用Drive正則表達式代替Dr,Rd和St這樣的字符,請使用正則表達式來解決這個問題。我嘗試了很多方法,但我的結果是正確的。例如,如果用戶提供這個地址給變量v地址: 13,Clinton str off allen rd queens dr。 結果應該是 13,克林頓街關閉艾倫路皇后開車。我自己的正則表達式
這裏是我的代碼示例:
public void standardizeAddress(String vaddress){
address = vaddress;//address is an instance variable
String str1,str2;
//Replace all instances of 'St,Rd,Dr' with 'Street,Road and Drive' Using
String regex = "\\sSt\\s";
Pattern pat = Pattern.compile(regex);
Matcher match = pat.matcher(address);
while(match.find())
address = match.replaceAll(" Street ");
System.out.println(address);
str1 = address;
regex = "\\sRd\\s";
pat = Pattern.compile(regex);
match = pat.matcher(str1);
while(match.find())
str1 = match.replaceAll(" Road ");
System.out.println(str1);
str2 = str1;
regex = "\\sDr\\s";
pat = Pattern.compile(regex);
match = pat.matcher(str2);
while(match.find())
str2 = match.replaceAll(" Drive ");
System.out.println(str2);
}
預先感謝您
什麼是輸入?你期望輸出什麼?你會得到什麼輸出? – jlordo 2013-02-15 09:15:59
會使用[String.replace](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace%28java.lang.CharSequence,%20java.lang.CharSequence% 29)或[replaceAll](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replaceAll%28java.lang.String,%20java.lang.String%29)還不夠? – acostache 2013-02-15 09:16:16
這麼複雜的代碼適合這麼簡單的工作。改爲使用'yourString.replaceAll(「St」,「Street」)'。 – sp00m 2013-02-15 09:17:58