2011-12-30 70 views
3

嗨,我正在開發android應用程序。現在我陷入了一個問題。讓我舉一個例子來理解我的問題。修剪或替換字符串中的所有逗號和空格

我所擁有的是:kushal,mayurv,納倫德拉,dhrumil,標誌,,,,,,

我要的是:kushal,mayurv,納倫德拉,dhrumil,標誌着

任何幫助表示讚賞。

+0

輸入和輸出字符串是你的問題相同,則不需要任何東西直接做就可以使用相同的字符串 – 2011-12-30 13:52:27

+0

@SunilKumar :字符串不相同我想刪除「標記」字後的所有空格和逗號。 – 2011-12-30 13:54:26

+0

爲什麼這個標記詞?你是否需要前5個單詞, – user949300 2011-12-30 13:59:19

回答

3

嘗試用下面的代碼修剪所有不需要的逗號和空格

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); 
4

使用正則表達式來解決它。您想要刪除所有(,)後跟空格或另一個(,)。你也想刪除一個字母后面的所有(,)。

Regex in Android

yourstring = yourstring.replaceAll("(,)|(,,)", ""); 

類似的東西,對不起,我不能幫你了。

+0

我不知道使用正則表達式可以幫助我嗎? – 2011-12-30 13:50:56

+0

什麼正則表達式我必須創建 – 2011-12-30 13:51:59

+0

你必須創建一個模式,這是一個正則表達式來解決這個問題。請閱讀有關正則表達式的知識,您將會得到一個想法 – rfsk2010 2011-12-30 13:54:44

1

一般情況下,正則表達式的replaceAll()是要走的路。然而,就你而言,你最終是否想要一個單獨的字符串數組?例如的

new String[] { "kushal", "mayurv", "narendra", "dhrumil", "mark" } ? 

相當於如果是這樣,你可以做

String[] split = yourString.split(","); 

但後來經過拆分非常小心,尋找空字符串。

...

我看到Sunil擊敗了我 - 檢查出答案。

1

因爲它似乎您試圖在字符串的結尾刪除逗號和空格,這可能是你在找什麼,這種模式是有用的[, ]+$

Pattern p = Pattern.compile("[, ]+$"); 
Matcher m = p.matcher("kushal,mayurv,narendra,dhrumil,mark, ,,,, ,"); 
String clean = m.replaceFirst(""); 

你可以看到這個樣本運行here

編輯,如果你想用單個條目string.split數組
是去(見user949300 answer

方式
+0

如果問題僅出現在字符串的末尾,這是一個很好的解決方案。如果您還想刪除中間的空白內容,例如blah,foo,,, bar然後正則表達式變得更加複雜。 – user949300 2011-12-30 14:19:38

+0

同意...從一個簡單的例子很難概括,我認爲這個問題只會出現在字符串的末尾,Andreas Lindgren認爲總會有一些違規逗號等等。 – 2011-12-30 14:27:26

+0

是的空格和逗號也可能在中間。因此Sunil Kumar的答案解決了這個問題。 – 2011-12-30 14:44:25

1

你可以試試這個,它不是一個正確的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 , 
2

努力試圖完成這個自己後,這似乎做工精美。假設你正試圖爲一個字符串名爲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(",", ", "); 
1
yourString=yourString.replaceAll("^\\W+|\\W+$",""); 
相關問題