java从字符串中提取数字
1 String类提供的方法:
/*
* @Author liuhaidong
* @Description String类提供的方法:
* @Date 20:02 2019/9/19 0019
**/
public static void main(String[] args) {
String str = "love23next234csdn3423javaeye";
str=str.trim();
String str2="";
if(str != null && !"".equals(str)){
for(int i=0;i<str.length();i++){
if(str.charAt(i)>=48 && str.charAt(i)<=57){
str2+=str.charAt(i);
}
}
}
System.out.println(str2);
}
2正则表达式
/*
* @Author liuhaidong
* @Description 正则表达式
* @Date 20:03 2019/9/19 0019
**/
public static void main(String[] args) {
String a="love23next234csdn3423javaeye";
String regEx="[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(a);
System.out.println( m.replaceAll("").trim());
}
Pattern ,Matcher是java.util.regex软件包里的两个类
1 Pattern类的作用在于编译正则表达式后创建一个匹配模式.
2 Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配
3 Pattern complie(String regex)
由于Pattern的构造函数是私有的,不可以直接创建,所以通过静态方法compile(String regex)方法来创建,将给定的正则表达式编译并赋予给Pattern类
- String pattern() 返回正则表达式的字符串形式,其实就是返回Pattern.complile(String regex)的regex参数
String regex = "\\?|\\*";
Pattern pattern = Pattern.compile(regex);
String patternStr = pattern.pattern();//返回\?\*
replaceAll() 方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串
3 集合类库
/*
* @Author liuhaidong
* @Description集合类库
* @Date 20:18 2019/9/19 0019
**/
public static void main(String[] args) {
String a="love23next234csdn3423javaeye";
List<String> digitList = new ArrayList<>();
Pattern p = Pattern.compile("[^0-9]");
Matcher m = p.matcher(a);
String result = m.replaceAll("");
for (int i = 0; i < result.length(); i++) {
digitList.add(result.substring(i, i+1));
}
System.out.println(digitList);
}