java编程,求帮我把这个程序改成要求的一样

这是题目:
编写一个应用程序,接收用户从键盘的一行输入(只接收一次),判断这一行字符串(可以包含空格)中的数字个数。
理解Scanner类中,next和nextLine方法的区别。
理解String的split方法使用正则表达式的适用场景。
理解String和char[]之间的转换方法。
输入样例:
a1b2c34 5
输出样例:
共发现5个数字,为12345
输入样例:
abcdef
输出样例:
未发现数字
这是我写的程序,有错误:
import java.util.Scanner;
class EX01{
int number = 0;
class Stat_char{
Scanner in = new Scanner(System.in);
public void show()
{
System.out.print("请输入一串字符串统计其中数字的个数:");
String c1 = in.nextLine();
char []a = c1.toCharArray();
for(int i = 0 ; i<a.length ; i++)
{
if(a[i]>='0'&&a[i]<='9')
{
number++;

                 }
              }
             }
               public void print()
               {
                   if(number>0)
                   System.out.println("数字有:"+number+"个");
    
                   else  
                   System.out.println("未发现数字");
             {
                 
             }
             }
                }

{
public class zifuchuan {
public static void main(String[] args) {
Stat_char ch = new Stat_char();
ch.show();
ch.print();
}

                }
}

next() 和 nextLine() 的区别

  • next() 一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
  • nextLine() 方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。

示例代码

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("输入样例:");
        String inputStr = input.nextLine();
        int count = 0;
        String output = "";
        for (int i = 0; i < inputStr.length(); i++) {
            char c = inputStr.charAt(i);
            if (c >= '0' && c <= '9') {
                count++;
                output += c;
            }
        }
        System.out.print("输出样例:");
        if (count > 0) {
            System.out.println("共发现" + count + "数字,为" + output);
        } else {
            System.out.println("未发现数字");
        }
    }

img

img


若对你有帮助,望采纳!