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

来源:互联网 发布:农村淘宝软件下载 编辑:程序博客网 时间:2024/06/05 10:02

题目:读入一个字符串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;        }    }}
阅读全文
0 0
原创粉丝点击