java中,正则表达式匹配出来的字符串赋值给一个数组
比方说匹配出来的很多个电话号码,11223333223331122231233。。。什么的然后把第一个电话号码赋值给str[1],第二个赋值给str[2]。。。依此。。。...
比方说匹配出来的很多个电话号码,11223333 2233311 22231233 。。。什么的
然后把第一个电话号码赋值给str[1],第二个赋值给str[2]。。。依此。。。
代码怎么写 展开
然后把第一个电话号码赋值给str[1],第二个赋值给str[2]。。。依此。。。
代码怎么写 展开
2个回答
展开全部
采用你上面的假设"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]); //打印电话号码
}
希望对你有帮助。
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]); //打印电话号码
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询