簡體   English   中英

修剪或替換String中的所有逗號和空格

[英]Trim or replace all commas and spaces from the String

嗨,我正在開發Android應用程序。現在我陷入了一個問題。 讓我舉個例子來了解我的問題。

我所擁有的是:kushal,mayurv,narendra,dhrumil,mark ,,,,,,

我想要的是:kushal,mayurv,narendra,dhrumil,mark

任何幫助表示贊賞。

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

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

使用正則表達式來解決它。 您想要刪除空格或其他(,)后面的所有(,)。 您還想刪除所有未跟隨字母的(,)。

Android中的正則表達式

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

這樣的事情,對不起,我無法幫助你。

在嘗試自己完成之后,這看起來很漂亮。 假設您正在嘗試為名為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+$","");

通常,正則表達式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("");

你可以在這里看到這個樣本

編輯
如果你想要一個帶有單獨條目的數組string.split是要走的路(參見user949300 answer

你可以試試這不是一個合適的選擇,但會適用於你的情況

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 ,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM