java - 字符串替换所有多个字符

标签 java regex string

没有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+", ""));

最佳答案

使用 Guava's Joiner 怎么样? :

String joined = Joiner.on(",").join(set);
System.out.println(joined);  // 1,2,3

或者,如果您无法使用任何第 3 方库,则可以使用以下 replaceAll :

System.out.println(set.toString().replaceAll("[\\[\\]]|(?<=,)\\s+", ""));  // 1,2,3

嗯,您不会总是得到相同的输出,因为 HashSet 不保留插入顺序。如果您需要,请使用 LinkedHashSet

关于java - 字符串替换所有多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196651/

相关文章:

java - 超过半数zookeeper服务器宕机,zookeeper集群还能正常工作吗?

java - 间隔运行 Java 线程

java - 将 int 变量附加到 StringBuffer

java - EasyMock 和测试 protected 方法

regex - Perl 正则表达式可以用于什么类型的语言?

python - 如何使用正则表达式查找字符串中的重复字符

c# - 解决我的正则表达式检测链接中的灾难性回溯?

c++ - 为什么不允许从字符数组进行 std::string 初始化?

c++ - 在清除 istream 之前我不需要取消它吗?

java - 我的代码在 for 循环 "java.util.InputMismatchException"中输入字符串时显示错误?