Java中怎么截取括号中的内容放到list里。

例如:String str = "(001)bbb,(001)ccc,(002)ddd, (002)eee......"; 结果我想输出Map<001,[bbb,ccc]>,<002,[ddd,eee]>.......。([bbb.ccc] [ddd,eee]为 数组,LIST都可以;括号内的内容未知 但是知道两天一组,后面具体还有多少数据也未知)求解

    采用正则表达式来处理;

    例子如下 :

String s="dsaf(323)ldsao,(sd)"; \\示例文本
String pattern="(\\([^\\)]+\\))"; \\正则表达式,匹配括号内容
ArrayList list=new ArrayList();
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(s);
while(m.find()){
list.add(m.group());
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-28
先分割字符串为数组 String[] ss=str.split(",");
Map<String,ArrayList<String>> map=new HashMap<String,ArrayList<String>>();

for(String s:ss){
int i=s.indexOf(')');
String strn=s.substring(1,i);//截取数字,001,002等
String str1=s.substrng(i+1);//截取字符串bbb,ccc等
ArrayList<String> al=map.get(strn);
if(al==null)
al=new ArrayList<String>();
al.add(str1);
}本回答被提问者采纳
相似回答