从键盘随意输入一串字符,从中提取数字
一、利用正则表达式提取单个数字
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class getNum{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
List<String> arr=new ArrayList<String>();
for(String s:str.replaceAll("[^0-9]","").split("")){ /*字符串中非数字字符用“”替换,然后以“”分割*/
if(s.length()>0){
arr.add(s);
}
}
System.out.println("arr: "+arr);
}
}
运行:
输入:1huj995j0i1e31
输出:arr: [1, 9, 9, 5, 0, 1, 3, 1]
二、利用String类
import java.util.*;
public class get_StringNum {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
str=str.trim();//去掉字符串首尾空格
String ss="";
if(str != null && !"".equals(str)){
for(int i=0;i<str.length();i++){
if(str.charAt(i)>=48 && str.charAt(i)<=57){
ss+=str.charAt(i);
}
}
}
System.out.println(ss);
}
}//编译运行当出现GBK的不可映射字符时:javac -encoding UTF-8 get_StringNum.java
//或者,以笔记本形式打开,另存为ANSI格式
运行:
输入:1hu99ji5a0j1ie31
输出:19950131