我正在尝试使用其他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。
我可以这样做。方法,但我想知道是否有可用的库/方法/实用程序?
答案 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类