哪儿错啦?找不到呀?大家帮我看看呗,大二水平太难的不会希望可以教我简单一点的改动?
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) + " ");
}