修剪或替换String中的所有逗号和空格

时间:2011-12-30 13:44:04

标签: java android

您好我正在开发Android应用程序。现在我遇到了一个问题。让我举个例子来了解我的问题。

我拥有的是:kushal,mayurv,narendra,dhrumil,mark ,,,,,,

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

感谢任何帮助。

7 个答案:

答案 0 :(得分:5)

尝试使用以下代码修剪所有不需要的逗号和空格

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

答案 1 :(得分:4)

使用正则表达式来解决它。您想要删除空格或其他(,)后面的所有(,)。您还想删除所有未跟随字母的(,)。

Regex in Android

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

这样的事情,抱歉我无法帮助你。

答案 2 :(得分:3)

在尝试自己完成之后,这似乎工作得很漂亮。假设您正在尝试为名为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(",", ", ");

答案 3 :(得分:1)

通常,正则表达式replaceAll()是要走的路。但是,在你的情况下,你最终想要一个单独的字符串数组吗?例如相当于

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

如果是这样,你可以

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

然后非常仔细地进行拆分并寻找空的弦乐。

...

我看到Sunil打败了我 - 看看答案。

答案 4 :(得分:1)

由于您似乎正在尝试删除字符串末尾的逗号和空格,这可能就是您要查找的内容,因此此模式非常有用[, ]+$

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

您可以看到此示例正在运行here

修改
如果你想要一个包含单个条目的数组string.split,那么就可以了(参见user949300 answer

答案 5 :(得分:1)

你可以试试这个不是一个合适的解决方案,但会适合你的情况

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 ,

答案 6 :(得分:1)

yourString=yourString.replaceAll("^\\W+|\\W+$","");