2010-03-28 59 views

回答

3

你覺得這個怎麼樣?我自己試了一次。

private String replace(String needle, String replacement, String haystack) { 
    String result = ""; 
    int index = haystack.indexOf(needle); 
    if(index==0) { 
     result = replacement+haystack.substring(needle.length()); 
     return replace(needle, replacement, result); 
    }else if(index>0) { 
     result = haystack.substring(0,index)+ replacement +haystack.substring(index+needle.length()); 
     return replace(needle, replacement, result); 
    }else { 
     return haystack; 
    } 
} 
2

Here's one function您可以使用:

public static String replace(String _text, String _searchStr, String _replacementStr) { 
    // String buffer to store str 
    StringBuffer sb = new StringBuffer(); 

    // Search for search 
    int searchStringPos = _text.indexOf(_searchStr); 
    int startPos = 0; 
    int searchStringLength = _searchStr.length(); 

    // Iterate to add string 
    while (searchStringPos != -1) { 
     sb.append(_text.substring(startPos, searchStringPos)).append(_replacementStr); 
     startPos = searchStringPos + searchStringLength; 
     searchStringPos = _text.indexOf(_searchStr, startPos); 
    } 

    // Create string 
    sb.append(_text.substring(startPos,_text.length())); 

    return sb.toString(); 
} 
+0

謝謝,我希望有一個更短的解決方案。 你爲什麼使用這些下劃線?指示變量是參數? – hsmit 2010-03-28 13:33:15

+0

這是一個很好的編碼標準,可以根據變量的範圍對變量進行不同的命名。 Google的Android代碼爲實例變量使用了「m」前綴。 Symbian爲方法參數使用「i」前綴和「a」前綴。 – 2010-03-29 11:14:15