学习目标:
目标:熟练运用Java所学知识
学习内容:
本文内容:使用java解决 字符串中找出连续最长的数字串
题目描述
读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。
示例1
输入
abcd12345ed125ss123456789
输出
123456789
解题思路
找出字符串中最长的连续数字串,我们需要遍历字符串,并设置变量start记录每次数字串开始的位置,end记录每次数字串结束的位置,index记录最长数字串开始的下标,max记录最长数字串的长度
通过while循环每次循环更新每个变量,循环结束之后,max就是最长数字串长度,index是下标
实现代码
public class MaxLengthDigit {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String str=sc.next();
String res=longDigit(str);
System.out.println(res);
}
public static String longDigit(String str){
int max=0;//记录当前最长连续数字串
int start=0;//数字串开始位置
int end=0;//数字串结束位置
int length=str.length();
int index=0;
while(end<length){
while(end<length&&!Character.isDigit(str.charAt(end))){
//end移动到当前数字串的第一个位置
end++;
}
start=end;//记录当前数字串开始位置
while(end<length&&!Character.isLetter(str.charAt(end))){
//end移动到数字串结束的第一个位置
end++;
}
if(end-start>max){
//动态记录最长数字串
max=end-start;//记录最长数字串长度
index=start;//记录最长数字串开始的下标
}
}
return str.substring(index,index+max);
}
}