嗨,我正在開發android應用程序。現在我陷入了一個問題。讓我舉一個例子來理解我的問題。修剪或替換字符串中的所有逗號和空格
我所擁有的是:kushal,mayurv,納倫德拉,dhrumil,標誌,,,,,,
我要的是:kushal,mayurv,納倫德拉,dhrumil,標誌着
任何幫助表示讚賞。
嗨,我正在開發android應用程序。現在我陷入了一個問題。讓我舉一個例子來理解我的問題。修剪或替換字符串中的所有逗號和空格
我所擁有的是:kushal,mayurv,納倫德拉,dhrumil,標誌,,,,,,
我要的是:kushal,mayurv,納倫德拉,dhrumil,標誌着
任何幫助表示讚賞。
嘗試用下面的代碼修剪所有不需要的逗號和空格
String str = "kushal,mayurv,narendra,dhrumil,mark, ,,,, ";
String splitted[] = str.split(",");
StringBuffer sb = new StringBuffer();
String retrieveData = "";
for(int i =0; i<splitted.length; i++){
retrieveData = splitted[i];
if((retrieveData.trim()).length()>0){
if(i!=0){
sb.append(",");
}
sb.append(retrieveData);
}
}
str = sb.toString();
System.out.println(str);
使用正則表達式來解決它。您想要刪除所有(,)後跟空格或另一個(,)。你也想刪除一個字母后面的所有(,)。
yourstring = yourstring.replaceAll("(,)|(,,)", "");
類似的東西,對不起,我不能幫你了。
我不知道使用正則表達式可以幫助我嗎? – 2011-12-30 13:50:56
什麼正則表達式我必須創建 – 2011-12-30 13:51:59
你必須創建一個模式,這是一個正則表達式來解決這個問題。請閱讀有關正則表達式的知識,您將會得到一個想法 – rfsk2010 2011-12-30 13:54:44
一般情況下,正則表達式的replaceAll()是要走的路。然而,就你而言,你最終是否想要一個單獨的字符串數組?例如的
new String[] { "kushal", "mayurv", "narendra", "dhrumil", "mark" } ?
相當於如果是這樣,你可以做
String[] split = yourString.split(",");
但後來經過拆分非常小心,尋找空字符串。
...
我看到Sunil擊敗了我 - 檢查出答案。
因爲它似乎您試圖在字符串的結尾刪除逗號和空格,這可能是你在找什麼,這種模式是有用的[, ]+$
Pattern p = Pattern.compile("[, ]+$");
Matcher m = p.matcher("kushal,mayurv,narendra,dhrumil,mark, ,,,, ,");
String clean = m.replaceFirst("");
你可以看到這個樣本運行here
編輯,如果你想用單個條目string.split
數組
是去(見user949300 answer)
如果問題僅出現在字符串的末尾,這是一個很好的解決方案。如果您還想刪除中間的空白內容,例如blah,foo,,, bar然後正則表達式變得更加複雜。 – user949300 2011-12-30 14:19:38
同意...從一個簡單的例子很難概括,我認爲這個問題只會出現在字符串的末尾,Andreas Lindgren認爲總會有一些違規逗號等等。 – 2011-12-30 14:27:26
是的空格和逗號也可能在中間。因此Sunil Kumar的答案解決了這個問題。 – 2011-12-30 14:44:25
你可以試試這個,它不是一個正確的soution,但會在你的情況
String str = "kushal,mayurv,narendra,dhrumil,mark, ,,,, ,";
String new_str = str.replaceAll(","," "); //replace , with space
String temp = new_str.trim(); //remove trailing space
System.out.println(temp.replaceAll(" ",",")); // now replacing space with ,
努力試圖完成這個自己後,這似乎做工精美。假設你正試圖爲一個字符串名爲myString的做到這一點:
// replace all consecutive spaces and commas by a space and a comma respectively
String sanitizedString = myString.replaceAll("\\s+", " ").replaceAll(",+", ",");
// replace all resulting comma and space combinations
sanitizedString = sanitizedString.replaceAll("(,)+|(,)+|(,)+", ",").replaceAll(",+", ",");
// remove leading and trailing commas (if any)
sanitizedString = sanitizedString.replaceFirst("^,", "").replaceFirst(",$", "");
// add a space between comma (merely for readability) **** optional ****
sanitizedString = sanitizedString.replace(",", ", ");
yourString=yourString.replaceAll("^\\W+|\\W+$","");
輸入和輸出字符串是你的問題相同,則不需要任何東西直接做就可以使用相同的字符串 – 2011-12-30 13:52:27
@SunilKumar :字符串不相同我想刪除「標記」字後的所有空格和逗號。 – 2011-12-30 13:54:26
爲什麼這個標記詞?你是否需要前5個單詞, – user949300 2011-12-30 13:59:19