链接:https://www.nowcoder.com/questionTerminal/bd891093881d4ddf9e56e7cc8416562d
题目描述
读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。
示例1
输入
abcd12345ed125ss123456789
输出
123456789
算法思路
用count表示经过的数字长度最大值,tmp表示数字长度计算的临时值,当为字母时重置为0,如果tmp大于count时更新count
while循环中一定要注意最后字符是数字是会出现异常,所以if判断一下
然后使用substring(,)字符串截取的函数
代码实现
import java.util.Scanner;
/**
* @ Created with IntelliJ IDEA.
* @ClassName Test
* @Description
* @Author by
* @Date 2020/6/25 17:29
*/
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
String str = scanner.nextLine();
int len = str.length();
System.out.println(maxNum(str, len));
}
}
private static String maxNum(String str, int len) {
int count = 0;
int beg = 0;
for (int start = 0; start < len; ) {
int tmp = 0;
//while循环计算数字串长度,如果tmp大于count则更新count
while(str.charAt(start)>='0' && str.charAt(start) <='9') {
tmp++;
start++;
//这里一定要注意当最后一个数字的时候,如果不判断会出现异常
if(start==len) {
break;
}
}
if(tmp > count) {
count = tmp;
beg = start-count;
}
start++;
}
//substring(,)字符串截取的函数
String ans = str.substring(beg, beg + count);
return ans;
}
}