我想从不必要的数据中清除String,例如:
SELECT movies.*,
GROUP_CONCAT(moviesgenre.genre) as genres
FROM movies, genre
WHERE FIND_IN_SET(moviesgenre.ID, Movies.genre)>0
GROUP BY Movies.ID
更确切地说,我想要删除x, y, z, g, h
和g
,因为在g和h字符之前,我有2个“空格”。
实现这一目标的最快方法是什么?
答案 0 :(得分:3)
使用String#replaceAll
:
String input = "x, y, z, g, h";
input = input.replaceAll("\\s{2,}\\w+,?", "");
答案 1 :(得分:1)
另一种变体是:
String data = "x, y, z, g, h";
data = Pattern.compile(",")
.splitAsStream(data)
.filter(s -> s.length() - s.trim().length() <= 1)
.collect(Collectors.joining(","));
如果由于某种原因你还想要包含最后一个逗号,那么你可以这样做:
data = Pattern.compile(",")
.splitAsStream(data)
.filter(s -> s.length() - s.trim().length() <= 1)
.collect(Collectors.joining(",", "", ","));
答案 2 :(得分:-2)
String str ="x,y,z, g, h;
String newString = str.replaceAll("[^a-zA-Z]","");
o / p:
newString = x,y,x,g,h
注意:如果你想删除g&amp; h character使用java split方法。