java输入一个字符串,打印出其中所有的连续数字
/***输入一个字符串,打印出其中所有的连续数字**@authorYang*@version$Revision:1.2$(版本号)$Date:2007/11/2909:5...
/**
* 输入一个字符串,打印出其中所有的连续数字
*
* @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
不用正则表达式 展开
* 输入一个字符串,打印出其中所有的连续数字
*
* @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
不用正则表达式 展开
4个回答
展开全部
首先,你把数字存到continuousNumbers里 而
if(Character.isDigit(numbers[i])) {
stringBuffer.append(numbers[i]);
continuousNumbers+=stringBuffer;
这里槐迅面没有输出语句,所以没有结果。
其次,程序得到的结果并不是你想要的结果,逻辑有点问题,好好拍型考虑一下吧!铅贺此
if(Character.isDigit(numbers[i])) {
stringBuffer.append(numbers[i]);
continuousNumbers+=stringBuffer;
这里槐迅面没有输出语句,所以没有结果。
其次,程序得到的结果并不是你想要的结果,逻辑有点问题,好好拍型考虑一下吧!铅贺此
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不用声明String continuousNumbers="";
把else {
if( continuousNumbers.length() < 1 ) {
System.out.println(continuousNumbers);
}
continuousNumbers="毕历"袭数弊;代码去拍族掉
在for循环外加上
System.out.println(stringBuffer.toString());
把else {
if( continuousNumbers.length() < 1 ) {
System.out.println(continuousNumbers);
}
continuousNumbers="毕历"袭数弊;代码去拍族掉
在for循环外加上
System.out.println(stringBuffer.toString());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if( continuousNumbers.length() < 1 ) {
System.out.println(continuousNumbers);
}
为什么这么租宴做呢?
楼主掘饥把这弊散银句if 去掉
直接System.out.println(continuousNumbers);
然后再continuousNumbers="";
System.out.println(continuousNumbers);
}
为什么这么租宴做呢?
楼主掘饥把这弊散银句if 去掉
直接System.out.println(continuousNumbers);
然后再continuousNumbers="";
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还是零分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询