您的位置:首页 > 编程语言

《好未来编程题》字符串中找出连续最长的数字串

2017-08-08 10:02 369 查看
题目:读入一个字符串str,输出字符串str中的连续最长的数字串

输入描述:

个测试输入包含1个测试用例,一个字符串str,长度不超过255。

输出描述:

在一行内输出str中里连续最长的数字串。

示例1

输入

abcd12345ed125ss123456789

输出

123456789

解析:该题目不难,但是提交的时候有注意点,就是在while里需要加break才能通过,无语了,貌似不支持连续测试的样子,ok,直接上代码了。

思考:回头想了想,其实该题目没有说的很清楚,比如有可能连续的最长子串不止一个,输出第一个?还是最后一个?还是都输出?所以题目的意思应该是假定只有一个最长的连续子串才。

import java.util.Scanner;
/**
* Created by Administrator on 2017/8/8.
*/
public class Main {

public static String maxSubNumbers(String s){
String result="";
for(int i=0;i<s.length();i++){
if(s.charAt(i)>='0'&&s.charAt(i)<='9'){//当前的字符是数字了
int count=1;//计数一次
int index=i;//存储当前的截止索引
for(int j=i+1;j<s.length();j++){//从当前的下一个字符开始找
if(s.charAt(j)>='0'&&s.charAt(j)<='9'){
count++;//找到了就计数
index=j;//需要保存当前的索引,便于后面求子串
}else {
break;
}
}
if(count>=result.length()){
result=s.substring(i,index+1);
}
}else {
continue;
}
}

return result;
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
String s=sc.next();
System.out.println(maxSubNumbers(s).trim());
break;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程