思路:
定义两个字符串 cur,ret
cur:用来拼接数字字符串,只要是连续的数字就加上去
ret:用来存放旧的cur加过的数字字符串,和新的比较谁长就取谁
遍历完之后再进行比较一次输出ret就行了
具体实现代码(结合注释)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //.in代表从键盘读入
while(scanner.hasNextLine()) {
String str1 = scanner.nextLine();
String cur = "";
String ret = "";
//这个i是有讲究的,考虑到最后for循环外面还要使用,就提前把他定义到外面
int i = 0;
for (; i < str1.length(); i++) {
char ch = str1.charAt(i);
//如果是数字就进行拼接
if(ch <= '9' && ch >= '0') {
//字符串拼接
cur = cur + ch + "";
//如果不是数字,并且cur大于了ret就把cur 赋值给ret ,如果不满足说明ret中的数组大于了cur,就不用进行赋值,然后把cur置为空
}else {
if(cur.length() > ret.length()) {
ret = cur;
//赋值完之后也要进行,置空防止在旧字符串中继续拼接数字
cur = "";
}else {
cur = "";
}
}
}
//i 已经走完了,但是最后的字符串没有进行比较
//这时候就可以判断i是否走完,如果i走完了,就进行最后一次的判断
if(cur.length() > ret.length() && (i == str1.length())) {
ret = cur;
}
System.out.println(ret.toString());
}
}
运行结果
每日一言
伟大的成绩和辛勤劳动是成正比例的,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来 -鲁迅