回调函数-小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因

问题描述

小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因
小弟把代码贴到了下面,我要迭代的替换字符串中的内容,替换完毕后,方法执行到 return sb.toString(); 应该是结束了,可是我的代码在运行的时候执行了return sb.toString(); 以后又进来执行一次,分析不出来原因,还请大家赐教,不胜感激:

private String parseToCk(String str) {
String s1 = str.trim();
/**

  • s1截取字符串开始部分*/if (s1.contains(""["") && s1.contains(""]"")) {s1 = str.substring(str.indexOf(""["") + 1 str.indexOf(""]"")).trim();}String s2 = """";if (s1.contains("""")) {s2 = s1.substring(0 s1.lastIndexOf("""") + 4).trim();}String s3 = """";if(s1.indexOf(""})>0){s3 = s1.substring(s1.indexOf(""{"") s1.indexOf(""})+2).trim();}else{s3 = s1.substring(s1.indexOf(""{"") s1.indexOf(""}"")+1).trim(); }String s8 = s1.substring(s2.length() + s3.length() s1.length()).trim();StringBuffer sb = new StringBuffer();sb.append(s2);if (s3.contains(""img"")) {sb.append(""
    "");s3 = s3.substring(s3.indexOf("""":"""") + 3 s3.length()).trim();String s4 = s3.substring(0 s3.indexOf("""""")).trim();String s5 = s3.substring(s3.indexOf(""imgHeight"") s3.indexOf(""imgWidth"")).trim();s5 = s5.replace(""imgHeight""height"").trim();s5 = s5.replace(""""""").trim();s5 = s5.replace(""px"").trim();String s6 = s3.substring(s3.indexOf(""imgWidth"") s3.indexOf(""type"")).trim();s6 = s6.replace(""""""").trim();s6 = s6.replace(""px"").trim();String img = """";sb.append(img);sb.append(""

    "");} else {sb.append(""
    "");s3 = s3.substring(s3.indexOf("""":"""") + 3 s3.length()).trim();s3 = s3.substring(0 s3.indexOf("""""")).trim();sb.append(s3);sb.append(""

    "");}if (s8.length() > 0 && s8.contains(""content"")) {sb.append(s8);parseToCk(sb.toString());}return sb.toString(); }

调用私有方法的代码如下:

public String saveOrUpdateJump() {
try {
forumChannelList = forumChannelMgr.getForumChannelInfoes(forumChannel);
if (forumTopic != null && forumTopic.getId() != null) {
forumTopic = forumTopicMgr.getForumTopicObject(forumTopic);
String contant="""";
if(forumTopic.getContent()!=null){
contant=parseToCk(forumTopic.getContent());
}
forumTopic.setContent(contant);
return SUCCESS;
} else {
return SUCCESS;
}
} catch (PomInfoException e) {
e.printStackTrace();
log.error(e.getMessage() e);
return ERROR;
}
}

解决方案

你这个函数是个嵌套函数,在函数最后有 sb.append(s8); parseToCk(sb.toString());
嵌套函数当然可能会出现重复调用了。

时间: 2024-08-03 14:43:52

回调函数-小弟做了一个方法,执行完毕还会再进入方法一次,求指教下原因的相关文章

json-使用jQuery ajax,回调函数必须在有一个alert()的前面才能执行?

问题描述 使用jQuery ajax,回调函数必须在有一个alert()的前面才能执行? 请问下 $(document).ready(function() { $("#confirm").submit(function(){ var $form = $(this); $.post($form.attr("action"),$form.serialize(),function(data){ alert("5555"); if (data.code

菜鸟求救:怎样实现统计一个方法执行多少次

问题描述 在做一个答题小游戏,一共有30多个类,其中有一个类是:如果答错了,就跳转到这个类调用他的方法,弹出一个"你答错了的对话框",我想在最后答完题的时候统计显示一共答错了多少题,我想的就是定义一个函数表示该方法执行多少次,然后显示直接调用该函数即可,现在不知道怎么实现统计一个方法执行多少次. 解决方案 解决方案二:定义静态变量来统计方法执行次数每进方法一次,统计次数加1所有方法执行完成时,输出统计次数就可以了解决方案三:引用1楼magi1201的回复: 定义静态变量来统计方法执行次

javascript带回调函数的异步脚本载入方法实例分析

  本文实例讲述了javascript带回调函数的异步脚本载入方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 var Loader = function () { } Loader.prototype = { require: function (scripts, callback) { this.loadCount = 0; this.totalRequire

为什么静态回调函数放在类中就没有执行,放在类外面就执行了呢?

问题描述 为什么静态回调函数放在类中就没有执行,放在类外面就执行了呢? 解决方案 解决方案二:showmethecode解决方案三:把static类型CallbackFunc(...)放在类外面就执行了,如果放在类里面就不执行?为什么?public__gcclassFormDemo:publicSystem::Windows::Forms::Form{...private:staticFormDemo*thisFrm;...//类构造函数初始后 ...thisFrm=this;//事件{//调用

javascript带回调函数的异步脚本载入方法实例分析_javascript技巧

本文实例讲述了javascript带回调函数的异步脚本载入方法.分享给大家供大家参考.具体实现方法如下: var Loader = function () { } Loader.prototype = { require: function (scripts, callback) { this.loadCount = 0; this.totalRequired = scripts.length; this.callback = callback; for (var i = 0; i < scri

ant编译-ubuntu中,通过java代码自动执行ant打包命令,结果ant permission denied,求指教

问题描述 ubuntu中,通过java代码自动执行ant打包命令,结果ant permission denied,求指教 ant权限已经更改了.且创建build.xml命令执行通过.当调用ant命令的时候.提示没有权限.好奇怪. 解决方案 就是在java中通过runtime.getruntime.exec执行命令 /bin/sh -c android create uitest-project....生成build.xml文件已经通过.但当通过exec执行命令/bin/sh -c ant bui

小弟做的一个小网站,做的不好,希望多提宝贵意见

问题描述 http://host.cnzui.com/chen324 解决方案 解决方案二:顶解决方案三:我留言的时候报错了解决方案四:你需要对输入的字符串进行安全过滤"/chen324"应用程序中的服务器错误.从客户端(TextBox2="...210'测试一下<javascriptlanguage...")中检测到有潜在危险的Request.Form值.说明:请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用程序安全的尝

JAVA,给其增加一个按钮并将三个按钮按行排列,求指教

问题描述 importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;publicclassMySoftwareextendsJFrameimplementsActionListener{JPanelbPanel;JB

javascript-js 回调函数的一个疑惑

问题描述 js 回调函数的一个疑惑 $(document).ready(function(){ for(var i = 0 ; i < 5; i++){ $("#b"+i).bind("click",function(){ alert(i); }); } }); This is a paragraph. 请点击这里0请点击这里1请点击这里2请点击这里3请点击这里4 代码如上,很简单的一个循环.但是为什么这5个button点击后都是alert出5呢 为什么不是0