java输入一个字符串,打印出其中所有的连续数字

/**
* 输入一个字符串,打印出其中所有的连续数字
*
* @author Yang
* @version $Revision: 1.2 $(版本号) $Date: 2007/11/29 09:55:55 $
*/
import java.util.Scanner;

public class ContinuousNumbers {

public static void main(String[] args) {
System.out.println("输入一个字符串:");
Scanner scanner = new Scanner(System.in);
StringBuffer stringBuffer=new StringBuffer();
String line = scanner.nextLine();
char numbers[]=line.toCharArray();
String continuousNumbers="";
System.out.println("打印出其中所有的连续数字:");
for(int i=0;i<numbers.length;i++) {
if(Character.isDigit(numbers[i])) {
stringBuffer.append(numbers[i]);
continuousNumbers+=stringBuffer;
}
else {
if( continuousNumbers.length() < 1 ) {
System.out.println(continuousNumbers);
}
continuousNumbers="";
}
}
}
}
问题:打印出其中所有的连续数字没结果
需要的结果:
如输入:aa341 34134 :psadf 13

输出为:

341
34134
13

如输入:99dd81a fd fd 13
输出为:

99
81
13
不用正则表达式

第1个回答  2008-01-02
首先,你把数字存到continuousNumbers里 而
if(Character.isDigit(numbers[i])) {
stringBuffer.append(numbers[i]);
continuousNumbers+=stringBuffer;
这里面没有输出语句,所以没有结果。
其次,程序得到的结果并不是你想要的结果,逻辑有点问题,好好考虑一下吧!
第2个回答  2008-01-02
你不用声明String continuousNumbers="";
把else {
if( continuousNumbers.length() < 1 ) {
System.out.println(continuousNumbers);
}
continuousNumbers="";代码去掉
在for循环外加上
System.out.println(stringBuffer.toString());
第3个回答  2008-01-02
if( continuousNumbers.length() < 1 ) {
System.out.println(continuousNumbers);
}
为什么这么做呢?
楼主把这句if 去掉
直接System.out.println(continuousNumbers);
然后再continuousNumbers="";本回答被提问者采纳
第4个回答  2008-01-02
还是零分
相似回答