题目描述:
读入一个字符串str,输出字符串str中连续最长的数字串
输入描述:
每个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串和长度。
输入样例:
abcd12345ed125ss123456789
输出样例:
123456789
解题思路:
首先将输入的字符串转换为字符数组
将符合的数字添加入创建好的一个StringBuffer对象中,如果不是数字就用空格代替,将空格也添加到StingBuffer对象中。
创建String数组,利用split对StringBuffer对象进行分割。
遍历String数组,求出最长的字符串长度,maxsize;
将长度为 maxsize的字符串输出。
参考代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
StringBuffer stringBuffer = new StringBuffer();
for (char ch:str.toCharArray()) {
if(ch >= '0' && ch <= '9'){
stringBuffer.append(ch);
}else{
stringBuffer.append(" ");
}
}
String str1 = stringBuffer.toString();
String[] nums = str1.split("\\s+");
int maxSize=nums[0].length();
for(int i=0;i<nums.length;i++){
if(nums[i].length()>maxSize){
maxSize=nums[i].length();
}
}
for (int i = 0; i < nums.length; i++) {
if(maxSize == nums[i].length()){
System.out.print(nums[i]);
}
}
}
}