Java - 全部替换

时间:2015-09-07 09:07:56

标签: java

我收到所有用户ID,我需要删除一些字符。我将它们添加到循环中的arraylist中,但它们是以这种格式添加的:

"[a1234567]"
"[b1234567]"

我想删除所有"[],因此它只会离开,例如a1234567

我试过了:

userNumbers.add(link.getUserId().replaceAll("[\"\\[\\]]","") );

但似乎没有发生任何事情?

3 个答案:

答案 0 :(得分:4)

String userNumber = "\"[b1234567]\"";
System.out.println(userNumber.replaceAll("[\"\\[\\]]",""));

输出:b1234567

为什么你认为似乎什么都没发生?

<强>更新

  

注释:在ArrayList上执行.toString()会导致这个吗?

源代码ArrayList.toString()(继承自AbstractCollection):

public String toString() {
    Iterator<E> it = iterator();
    if (! it.hasNext())
        return "[]";

    StringBuilder sb = new StringBuilder();
    sb.append('[');
    for (;;) {
        E e = it.next();
        sb.append(e == this ? "(this Collection)" : e);
        if (! it.hasNext())
            return sb.append(']').toString();
        sb.append(',').append(' ');
    }
}

如果你不想像String那样,你应该循环收集并打印每一个String或将它们附加到一个["b1234567"]

答案 1 :(得分:1)

使用以下内容:

userNumbers.add(link.getUserId().replaceAll(.replaceAll("\"\\[|\\]\"", ""));

点击此处:https://stackoverflow.com/a/15083671/3714122

答案 2 :(得分:1)

String userNumber = "\"[b1234567]\"" ;
userNumber  = userNumber .replaceAll("[^a-zA-Z0-9]", "");

在replaceAll方法中使用[^a-zA-Z0-9] RegExp作为参数,然后删除除a-z0-9和&amp;之外的所有字符。 A-Z ...

所以,输出是:b1234567