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 }

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

  • 相关阅读:
    一些我遇到前端方面的问题和解决方法
    Effective Objective-C 2.0学习记录(二)
    Effective Objective-C 2.0学习(一)
    加快Xcode运行速度
    JPA CriteriaBuilder的简单使用
    日志切分
    iOS并发,串行,异步,同步
    服务重启脚本
    简述http/https加密和认证方式
    nohup的使用
  • 原文地址:https://www.cnblogs.com/usual2013blog/p/8662139.html
Copyright © 2011-2022 走看看