java如何解析小括号中的数字放入list中去。里面的数字都是以,来间隔的(最好用正则)

最好正则!
切忌,格式如下,没两个数字之间都有换行。括号和数字之间也有一个换行

1,
22,
3,
41,
57,
62

private String s = "(" + "1, " + "22,   " + "3,  \n" + "41,\n" + "57," + "62)";
String[] S=s.replaceAll("[()\n ]", "").split("[,]");
  for(int i=0;i<S.length;i++){
      if(S[i].matches("[\\d]+")){
       System.out.println(S[i]);
      }
  }

加到list中,上个提问给你了。 其实您太计较换行,这个换行在正则中只要我不去匹配它,又没啥影响。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-09
String s= "(1,\n 22,\n 3,\n 41,\n 57,\n 62)";
String[] str = s.substring(1,s.length()-1).split(",\n");
for(String sss : str){
System.out.println(sss.trim());
}
看看这个也许对你有帮助
第2个回答  2013-06-09
Pattern pattern = new Pattern("\d+");//这个知道是什么意思?
Matcher matcher = pattern.match(str);//str 为你那个字符串
while(matcher.find()){
System.out.println(matcher.group());//输出字符串里的所有数字
}
第3个回答  2013-06-09
package servlet;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class regexptest {

/**
 * @param args
 */
public final static String test = "(1,2,3,4,5,6)";
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] b;//存储匹配结果
List list = new ArrayList();
b = test.split("[()]");//里面是一个正则表达式,去掉括号
String[] charstr = b[1].split(",");//获得数字数组;
for(int i=0;i<charstr.length;i++){//显示
System.out.println(Integer.parseInt(charstr[i].trim()));
list.add(Integer.parseInt(charstr[i].trim()));
}
}

}

相似回答