- //忘了加到数组a里了,修改一下。
- import java.util.ArrayList;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class 取出数字 {
- public static void main(String[] args){
- String s = "a123x456 17960?302t5876";
- getNumber(s);
- }
- public static void getNumber(String s){
- ArrayList<Integer> al = new ArrayList<Integer>();//定义集合,将符合正则的填入该集合中
- String regex = "\\d+";//定义正则,有一个或多个数字则符合规则
- Pattern p = Pattern.compile(regex);//将正则封装成对象。
- Matcher m = p.matcher(s);//通过正则对象获取匹配器对象。
- while(m.find())//直到没有符合要求的串时,结束while
- al.add(Integer.parseInt(m.group()));//用group返回匹配的子序列,为String型,Integer.parseInt(string)转成int型,自动装箱,添加到al集合中。
- Object[] a = al.toArray();//将集合变为数组
- System.out.print("总共有"+a.length+"个数,这些数字为:");//输出
- for(Object x : a)
- System.out.print(x+" ");//x默认调用toString();
- }
- }
复制代码 |