题目描述
读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
1个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。
示例1
输入
abcd12345ed125ss123456789
输出
123456789
思路
定义两个空字符串,遍历输入的字符串,遇见数字添加到cur中,这一段数字完了,把cur给ret,继续遍历,比较cur和ret的长度,cur比ret大了,就更新ret。
注意:当 i 遍历到最后,跳出循环了,但是如果最长的一段数字出现在结尾,就没有成功更新ret,所以在最后要判断一下
代码展示
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
String str=scanner.nextLine();
String cur="";
String ret="";
int i=0;
for(;i<str.length();i++){
char ch=str.charAt(i);
if(ch>='0' && ch<='9'){
//注意这里的ch是char型的,而cur是String型的
//给char型的加个“”就可以转为字符串进行拼接
cur+=ch+"";
}else{
if(cur.length()>ret.length()){
ret=cur;
}else{
cur="";
}
}
}
//如果最长一段数字出现在最后,已经跳出循环,在这里更新一下ret
if(i==str.length()&& cur.length()>ret.length()){
ret=cur;
}
System.out.println(ret);
}
}
}
😄