java中,正则表达式匹配出来的字符串赋值给一个数组

比方说匹配出来的很多个电话号码,11223333 2233311 22231233 。。。什么的
然后把第一个电话号码赋值给str[1],第二个赋值给str[2]。。。依此。。。
代码怎么写

第1个回答  2011-04-18
采用你上面的假设"11223333 2233311 22231233"为电话号码,我的正则表达式只能匹配7~8为的电话号码,如果 "11223333 2233311 22231233"不是7位或8位的数字,将不匹配。以下是我的代码实现,
希望对你有帮助。
Pattern p = Pattern.compile("[0-9]{7,8}");
String str = "11223333 2233311 22231233";
Matcher m = p.matcher(str);
//由于不知道有多少个电话号码会被匹配出来,所以采用List存放电话号码
List<String> mobileList = new ArrayList<String>();
while(m.find()){
mobileList.add(m.group()); //将匹配出的电话号码存放到mobileList中
}
String[] mobiles = new String[mobileList.size()]; //声明数组存放电话号码
int i = 0;
for(String mobile : mobileList){ //将list中的电话号码转存到数组中
mobiles[i] = mobile;
i++;
}
for(int j=0;j<mobiles.length;j++){
System.out.println(mobiles[j]); //打印电话号码
}本回答被提问者采纳
第2个回答  2011-04-18
String[] ay = str.split("正则")...
相似回答