没有replaceall输出:[3, 2, 1]
使用replaceall输出:3,2,1
无论如何使用单一的replaceAll方法来执行此操作,例如
set.toString().replaceAll("\\[\\]\\s+","");
现在代码
Set<String> set = new HashSet<String>();
set.add("1");
set.add("2");
set.add("3");
System.out.println(set.toString().replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s+", ""));
答案 0 :(得分:2)
如何使用Guava's Joiner
:
String joined = Joiner.on(",").join(set);
System.out.println(joined); // 1,2,3
或者,如果您无法使用任何第三方库,则可以使用以下replaceAll
:
System.out.println(set.toString().replaceAll("[\\[\\]]|(?<=,)\\s+", "")); // 1,2,3
好吧,你不会总是得到相同的输出,因为HashSet
不保留插入顺序。如果您需要,请使用LinkedHashSet
。
答案 1 :(得分:1)
如何使用此正则表达式[\\[\\]]
。
System.out.println(set.toString().replaceAll("[\\[\\]]", "")); // Output is 3,2,1
如果你想删除空白区域,请使用此正则表达式[\\[\\]\\s]
(但逗号将在那里)。
答案 2 :(得分:0)
replaceAll("[^\\d|,]", "");
将替换不是数字(\\d
)或(|
)逗号(,
)的所有内容。帽子符号^
表示不在Java正则表达式中,方括号[]
表示一组。所以我们的集合是“所有不是数字或逗号”。
Set<String> set = new HashSet<String>();
set.add("1");
set.add("2");
set.add("3");
System.out.println(set.toString().replaceAll("[^\\d|,]", ""));
输出:
3,2,1