我有一个字符串数组列表,它打印: [[aaa,bbb,..,fff]] 我还没有弄清楚为什么会出现双括号,就好像我在彼此内部有 2 个数组一样。所以我决定使用正则表达式。我应该用什么来移除内括号?
问问题
373 次
4 回答
1
这将解决问题:
String str = "[[aaa,bbb,..,fff]]";
str = str.replaceAll("\\[\\[", "[");
str = str.replaceAll("\\]\\]", "]");
然而,
我还没有弄清楚为什么会出现双括号
这是您真正应该调查的事情,而不仅仅是解决症状,找到并解决原因。
于 2013-10-04T15:55:38.170 回答
0
str.replaceAll("\\[(.*)\\]", "$1")
于 2013-10-04T16:02:32.377 回答
0
如果括号总是在最后,那么
str = str.substring(1, str.length()-2);
将是最简单的。但是,如果这是较大字符串的一部分,那么像其他答案一样的正则表达式是最好的。
而且,就像其他人告诉你的那样,找到问题,不要只是创可贴。
于 2013-10-04T16:06:18.990 回答
0
我不会依赖toString()
连接字符串列表的方法......我宁愿建议一种实用方法 - 如果您不想使用任何外部库。
public static String getFormattedString(Collection<String> input, String separator)
StringBuilder sb = new StringBuilder();
boolean first = true;
for(String s: input) {
if(!first) {
sb.append(separator);
} else {
first = false;
}
sb.append(s);
}
return sb.toString();
}
在您的代码中:
String result = getFormattedString(myStringList, ", ");
通过这样做,无论您使用什么实现,都将确保您获得所需的输出......
如果外部库没问题,那么你不应该重新发明轮子......
Apache Commons:StringUtil
String result = org.apache.commons.lang.StringUtils.join(myStringList, ", ");
番石榴:细木工
String result = com.google.common.base.Joiner.on(", ").join(myStringList);
(使用了这个问题的信息及其答案)
于 2013-10-04T16:06:44.070 回答