zoukankan      html  css  js  c++  java
  • 字符串算法系列

    给一个字符串,找出字符串里面连续的数字

               //字符串例子
    1
    String str3 = "aaa123ccc345ddd135";
    //转化为char数组
    2 char[] charsArr = str3.toCharArray(); 3 List<Integer> list = new ArrayList<>();
    //遍历char数组
    4 for (int i = 0; i < charsArr.length; i++) {
    //如果是数字
    5 if (Character.isDigit(charsArr[i])) {
    //如果集合大小大于0
    6 if (list.size() > 0) {
    //当前数字比之前数字大1
    7 if ((Integer.parseInt(String.valueOf(charsArr[i])) - list.get(list.size() - 1)) == 1) {
    //添加到集合里面
    8 list.add(Integer.parseInt(String.valueOf(charsArr[i]))); 9 } 10 } else {
    //新的匹配开始,添加第一个数字
    11 list.add(Integer.parseInt(String.valueOf(charsArr[i]))); 12 } 13 } else {
    //遇到非数字,并且之前的连续数字只有一个时,集合清空
    14 if (list.size() == 1) { 15 list.clear(); 16 } else if (list.size() > 1) {
    //遇到非数字,并且之前的连续数字大于一个时,先打印集合的元素,然后集合清空
    17 LOGGER.info("list is "+list); 18 list.clear(); 19 } 20 } 21 }
    //如果遍历结束,集合还有元素,打印集合的元素
    22 if (list.size() > 1) { 23 LOGGER.info("last list is " + list); 24 }

     总结:注意边界条件的判断。

  • 相关阅读:
    第三周学习进度
    计算最低价格
    第二阶段冲刺5
    第二阶段冲刺4
    第十三周进度条
    第二阶段冲刺3
    寻找小水王
    第二阶段冲刺2
    第二阶段冲刺1
    构建之法阅读笔记
  • 原文地址:https://www.cnblogs.com/usual2013blog/p/8662139.html
Copyright © 2011-2022 走看看