题目描述:读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。
示例1
输入
abcd12345ed125ss123456789
输出
123456789
思路如下:通过start标志字符串中最长数字串的前一位,通过count计算当前数字串的长度,若当前数字串的长度count>maxcount时更新maxcount,并重新使用start进行标记,最后打印时直接锁定数组中的 start+1位开始进行打印,打印截止位置为start+maxcount(最长数字串的最后一位)。
public static void longestnumber(String str){
char[] ch=str.toCharArray();
int count=0,maxcount=0;
//标记最长数字串的前一位
int start=0;
for (int i=0;i<ch.length;i++){
//java中的库函数判断当前字符是否是数字
if (Character.isDigit(ch[i])){
//是数字则count++
count++;
//maxcount小于count时更新maxcount并更新start位置
if(count>maxcount){
maxcount=count;
start=i-maxcount;
}
}
//当前字符不是数字则将count置为0
else{
count=0;
}
}
//打印最长数字串
for (int i=start+1;i<=start+maxcount;i++){
System.out.print(ch[i]);
}
}