我收到所有用户ID,我需要删除一些字符。我将它们添加到循环中的arraylist中,但它们是以这种格式添加的:
"[a1234567]"
"[b1234567]"
我想删除所有"
或[
或]
,因此它只会离开,例如a1234567
我试过了:
userNumbers.add(link.getUserId().replaceAll("[\"\\[\\]]","") );
但似乎没有发生任何事情?
答案 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("\"\\[|\\]\"", ""));
答案 2 :(得分:1)
String userNumber = "\"[b1234567]\"" ;
userNumber = userNumber .replaceAll("[^a-zA-Z0-9]", "");
在replaceAll方法中使用[^a-zA-Z0-9]
RegExp作为参数,然后删除除a-z
,0-9
和&amp;之外的所有字符。 A-Z
...
所以,输出是:b1234567