首页 > 其他 > 详细

在字符串中找出连续最长的数字串

时间:2019-08-25 15:41:27      阅读:114      评论:0      收藏:0      [点我收藏+]

1. 常规思路

    遍历一次,和之前的数字字符串比较长度,找到最长的

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String input = sc.nextLine();
            new Main().getLongestNumString(input);
        }
    }

    public void getLongestNumString(String str) {
        char[] arr = str.toCharArray();
        StringBuilder tmp = new StringBuilder();
        String ret = "";
        List<String> list = new ArrayList<>();
        boolean isConsecutive = false;
        for (char ch : arr) {
            if (Character.isDigit(ch)) {
                if (!isConsecutive) {
                    tmp = new StringBuilder();
                }
                tmp.append(ch);
                isConsecutive = true;
                if (ret.length() < tmp.toString().length()) {
                    ret = tmp.toString();
                    list.clear();
                    list.add(ret);
                } else if (ret.length() == tmp.toString().length()) {
                    list.add(tmp.toString());
                }
            } else {
                isConsecutive = false;
            }
        }

        for (String string : list) {
            System.out.print(string);
        }
        System.out.print(","+ret.length());
        System.out.println();
    }

}

2. 其他思路

来源:https://www.nowcoder.com/questionTerminal/2c81f88ecd5a4cc395b5308a99afbbec?f=discussion 哎呀哎呀123 的回答

将所有非数字的字符转换成一个字母,然后按照这个字母进行分隔,最后找到最长的数字串。

在字符串中找出连续最长的数字串

原文:https://www.cnblogs.com/ainsliaea/p/11407736.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!