求帮忙看看哪儿错啦?

哪儿错啦?找不到呀?大家帮我看看呗,大二水平太难的不会希望可以教我简单一点的改动?
15、 输入一个字符串,将其中的所有数字子串提取并转换为相应整数输出,如输入“*1234.345#678ad9jk81-101aght88ir09kp”,则得到1234、345、678、9、81、101、9。

package ex1;
import java.util.Scanner;
//import java.util.Arrays;
public class Ex1_15 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input=new Scanner(System.in);
int i,b=0;char[] ch;char a;
String line;
System.out.println("输入字符串");

line=input.next();
ch=new char[]{};
//ch=line.toCharArray();
for(i=0;i<line.length();i++)
{a=line.charAt(i);
if (a=='0'||a=='1'||a=='2'||a=='3'||a=='4'||a=='5'||a=='6'||a=='7'||a=='8'||a=='9')
{

            a=ch[b];    
            b=b+1;
        }
    }

    System.out.print(ch);   

    input.close();  }

}

我又来了 - -

import java.util.Scanner;
import java.util.Arrays;
public class D {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int i,b=0;String[] ch;String[] sh;char a;
String line,sr="";
System.out.println("输入字符串");
line=input.next();
ch=new String[line.length()];
for(i=0;i<line.length();i++)
{
a=line.charAt(i);
if (a=='0'||a=='1'||a=='2'||a=='3'||a=='4'||a=='5'||a=='6'||a=='7'||a=='8'||a=='9')
{

sr=sr+a;
}
else {
if (sr!=""){
ch[b]=sr;

b=b+1;
sr="";
}
else {continue;}
}

}
      ch[b]=sr;    
  b=b+1;
  sh=new String[b];
  sh=Arrays.copyOfRange(ch,0,b);
System.out.println(Arrays.toString(sh));   

input.close();  }

}

这个用数组输出可以达到要求,输出结果如下图

图片说明

java新人,大三在读,求赞求采纳

没有将数字分开,你按照自己的逻辑在纸上将输入处理一遍就知道了

 public static void main(String args[]){
     Scanner scan = new Scanner( System.in );
     String str = scan.nextLine();
     for( int i = 0; i < str.length(); i++ ){
         static int temp = 0;
         bool foundNum = false;
         char a = str.charAt(i); 
         if( '0' <= a && a <= '9' ) { 
           temp = temp*10 + Integer.valueOf( a - '0' );
             foundNum = true;
         } else if(foundNumb) {
           System.out.print( temp + " " );
             temp = 0;
             foundNum = false;
     }
     if( foundNum )
       System.out.println( temp );
 }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String string = scan.nextLine();
        String[] sts = string.split("");
        String regex = "^[0-9]+$";
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < sts.length; i++) {
            if (sts[i].matches(regex)) {
                stringBuffer.append(sts[i]);
                if (i + 1 < sts.length && !sts[i + 1].matches(regex)) {
                    stringBuffer.append("、");
                }
            }

        }
        StringBuffer s2 = new StringBuffer();
        for (String str : stringBuffer.toString().split("、")) {
            s2.append(Integer.parseInt(str)).append("、");
        }
        s2.delete(s2.length() - 1, s2.length());
        System.err.println(s2.toString());
    }

亲测可用,求采纳,谢谢

这个更简单

 public static void main(String args[]){
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        String list[] = str.split("[^0-9]");
        for( String s : list){
            if("".equals(s)) continue;
            System.out.print(Integer.valueOf(s) + " ");
        }
    }

更简洁的

 public static void main(String args[]){
        for( String s : (new Scanner(System.in)).nextLine().split("[^0-9]"))
            if(!"".equals(s)) 
                System.out.print(Integer.valueOf(s) + " ");
    }