从java中的另一个CSV字符串中删除一个字符串CSV元素

时间:2017-12-04 09:45:40

标签: java arrays string

我正在尝试使用其他CSV字符串从一个CSV字符串中删除元素:

示例:

String s1= "a,b,c,d,e,f,g,h,w,p,4,5,12,u,v"; /* Base String */

String s2="e,5,v";` /*(input string) This elements has to remove from above string S1 */

预期输出字符串s1: "a,b,c,d,f,g,h,w,p,4,12,u";

我已经尝试过:for循环并删除元素并追加String。

我可以这样做。方法,但我想知道是否有可用的库/方法/实用程序?

3 个答案:

答案 0 :(得分:1)

尝试使用String::replaceAll这样的正则表达式:

String regexReplace = "[" + s2.replace(",", "") + "]";//result [e5v]
s1 = s1.replaceAll(regexReplace, "") // replace all character in class [e5v] with empty
        .replaceAll(",{2,}", ",")// replace all two or more comma with one comma
        .replaceAll("(^,|,$)", "");// in some cases replace comma in start or in the end

一般解决方案(匹配单词而非字母)您可以使用此代码:

String regexReplace = "(" + s2.replace(",", "|") + ")";// result (e|5|v)

答案 1 :(得分:0)

尝试Spring的StringUtil

String s1= "a,b,c,d,e,f,g,h,w,p,4,5,12,u,v"; /* Base String */
String s2="e,5,v";
System.out.println(StringUtils.deleteAny(s1, s2));

答案 2 :(得分:0)

您可以使用apache commons Reference

中的StringUtils类