java 中输入一个字符串,将该字符串中包含的数字输出来(比如输入abc123a1,则打印出1 2 3 1,打印格式任意)?

输入一个字符串,将该字符串中包含的数字输出来(比如输入abc123a1,则打印出1 2 3 1,打印格式任意)?

可以用正则表达式,来做

    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        String str;
        str = scanner.nextLine();
        for (int i = 0;i < str.length();i++)
        {
            if ('0' <= str.charAt(i) && str.charAt(i) <= '9')
                System.out.print(str.charAt(i));
        }
    }

正则表达式解决

Pattern pattern = Pattern.compile("([1-9]\\d*\\.?\\d*)");

String str = "";
Matcher m = pattern.matcher("abc123a1");

int i = 0;
while (m.find()) {
        str += m.group(i)+" ";
        i++;
}
System.out.println(str);
public static void main(String[] args) {
        String str = "abc123a1";
        Pattern p = Pattern.compile("[0-9]");
        Matcher m = p.matcher(str);
        while (m.find()) {
        System.out.print(m.group()+" ");
        }
    }