从逗号分隔的字符串中删除尾随逗号

Kus*_*hah 45 java string

我从数据库中获得了多个逗号(,)的字符串.我想删除最后一个逗号,但我真的找不到一个简单的方法.

是)我有的: kushalhs, mayurvm, narendrabz,

我想要的是: kushalhs, mayurvm, narendrabz

aio*_*obe 124

要删除", "紧跟字符串结尾的部分,您可以执行以下操作:

str = str.replaceAll(", $", "");
Run Code Online (Sandbox Code Playgroud)

这优雅地处理空列表(空字符串),而不是需要特殊处理这种情况的lastIndexOf/ substringsolutions.

示例代码:

String str = "kushalhs, mayurvm, narendrabz, ";
str = str.replaceAll(", $", "");
System.out.println(str);  // prints "kushalhs, mayurvm, narendrabz"
Run Code Online (Sandbox Code Playgroud)

注意:由于对部件有一些注释和建议编辑", $":表达式应与要删除的尾部相匹配.

  • 如果您的输入看起来像"a,b,c,",请使用",$".
  • 如果您的输入看起来像"a, b, c, ",请使用", $".
  • 如果您的输入看起来像"a , b , c , ",请使用" , $".

我认为你说对了.

  • @ Lemmings19,取决于你开始的字符串当然.它**从OP提供的示例字符串中删除它,不是吗?为了更一般,可以使用正则表达式`\ s*,\ s*$`. (4认同)
  • `str.replaceAll(",$","");` 不会删除最后一个逗号。您需要在逗号和美元符号之间添加一个空格才能使其正常工作:`str.replaceAll(", $","");` 有效。从 Java 7.0 开始进行测试。 (2认同)

sri*_*ini 10

你可以用这个:

String abc = "kushalhs , mayurvm , narendrabz ,";
String a = abc.substring(0, abc.lastIndexOf(","));
Run Code Online (Sandbox Code Playgroud)


Ste*_*e J 8

使用Guava标准化所有逗号.将字符串分开在逗号周围,扔出容器,然后将它们全部连接在一起.两个电话.没有循环.第一次工作:

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;

public class TestClass {

    Splitter splitter = Splitter.on(',').omitEmptyStrings().trimResults();
    Joiner joiner = Joiner.on(',').skipNulls();

    public String cleanUpCommas(String string) {
        return joiner.join(splitter.split(string));
    }

}



public class TestMain {

    public static void main(String[] args) {
        TestClass testClass = new TestClass();

        System.out.println(testClass.cleanUpCommas("a,b,c,d,e"));
        System.out.println(testClass.cleanUpCommas("a,b,c,d,e,,,,,"));
        System.out.println(testClass.cleanUpCommas("a,b,,, ,c,d,  ,,e,,,,,"));
        System.out.println(testClass.cleanUpCommas("a,b,c,d,  e,,,,,"));
        System.out.println(testClass.cleanUpCommas(",,, ,,,,a,b,c,d,  e,,,,,"));
    }

}
Run Code Online (Sandbox Code Playgroud)

输出:

a,b,c,d,e
a,b,c,d,e
a,b,c,d,e
a,b,c,d,e
a,b,c,d,e

就个人而言,我讨厌计算子串的限制和所有废话.