博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法问题——递归算法
阅读量:6163 次
发布时间:2019-06-21

本文共 1923 字,大约阅读时间需要 6 分钟。

今天在做项目用到一个递归,竟然做了许久没有找到算法的错误之处,记录下。有空在思考下……

下面是错误代码:

功能是如果字符串以RTS_Mon->结尾,就截去最后面的 RTS_Mon->

处理结果应该为:1 RTS_Mon-> 2 RTS_Mon-> 3 RTS_Mon-> 4 RTS_Mon-> 5 RTS_Mon-> 6 RTS_Mon-> 7 RTS_Mon->" + "\r\n"+"RTS_Mon-(Admin)>

String   str="1 RTS_Mon->  2 RTS_Mon->  3  RTS_Mon->   4  RTS_Mon->  5  RTS_Mon->  6  RTS_Mon->  7  RTS_Mon->" +            "\r\n"+"RTS_Mon-(Admin)>   RTS_Mon->    RTS_Mon->RTS_Mon->";

 

public String jieQu(String data) {        if (data.trim().endsWith("RTS_Mon->")) {            data= data.substring(0, data.trim().length() - 9).trim();            Log.i(TAG, "onCreate: 当前数据:" + temp);            jieQu(temp);        }else{            Log.i(TAG, "onCreate: 当前数据else:" + data);            return data;        }    return null;    }

代码错误之处是: Log.i(TAG, "onCreate: 当前数据else:" + data);这里打印的数据为正确数据,但是运行到return data;后,竟然还会集训往下跑,运行到了return null;并执行了多次return null;

后修改代码为如下,则正常运行。

public String jieQu(String data) {        if (data.trim().endsWith("RTS_Mon->")) {             data = data.substring(0, data.trim().length() - 9).trim();            Log.i(TAG, "onCreate: 当前数据:" + data);            return jieQu(data);        }else{            Log.i(TAG, "onCreate: 当前数据else:" + data);            return data;        }    }

看错误代码<!---->

public String jieQu(String data) {        Log.i(TAG, "函数:*******");        if (data.trim().endsWith("RTS_Mon->")) {             data = data.substring(0, data.trim().length() - 9).trim();            Log.i(TAG, "onCreate: 当前数据:" + data);            jieQu(data);        }else{            Log.i(TAG, "onCreate: 当前数据else:" + data);            return data;        }        Log.i(TAG, "返回:*******");        return  null;    }

当字符串最后面更有6个RTS_Mon->时,则需要进入jieQu()方法7次, Log.i(TAG, "函数:*******");打印出7次。Log.i(TAG, "返回:*******");会走6次,

Log.i(TAG, "onCreate: 当前数据else:" + data),走一次。

进入if(){}后,走完代码,都会走return null;只有最后一次走入 else{} return data;

 

转载于:https://www.cnblogs.com/galibujianbusana/p/6413587.html

你可能感兴趣的文章
拓扑排序介绍
查看>>
eclipse打开工作空间(workspace)没有任务反应
查看>>
使用Sybmol模块来构建神经网络
查看>>
字符串去分割符号
查看>>
WPF中,多key值绑定问题,一个key绑定一个界面上的对象
查看>>
UML类图简明教程
查看>>
java反编译工具(Java Decompiler)
查看>>
Android开发之自定义对话框
查看>>
微信Access Token 缓存方法
查看>>
Eclipsed的SVN插件不能识别之前工作空间的项目
查看>>
Linux 查看iptables状态-重启
查看>>
amazeui学习笔记一(开始使用2)--布局示例layouts
查看>>
c#中lock的使用(用于预约超出限额的流程)
查看>>
ODI基于源表时间戳字段获取增量数据
查看>>
并发容器之CopyOnWriteArrayList(转载)
查看>>
什么是AAC音频格式 AAC-LC 和 AAC-HE的区别是什么
查看>>
原创:goldengate从11.2升级到12.1.2
查看>>
Quartz
查看>>
正则表达式的语法规则
查看>>
C#一个关于委托和事件通俗易懂的例子
查看>>