qq_23910073 2014-11-26 14:33 采纳率: 0%
浏览 1562

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

小弟把代码贴到了下面,我要迭代的替换字符串中的内容,替换完毕后,方法执行到 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;
}
}

  • 写回答

1条回答

  • 快乐鹦鹉 2014-11-27 00:07
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件