识别下面一行重复代码的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了识别下面一行重复代码的问题。相关的知识,希望对你有一定的参考价值。

我很难找到哪部分的代码是重复的,如何修复它?

try {
    String template = new String(sourceTemplate);
    // Substitute for %CODE%
    int templateSplitBegin = template.indexOf("%CODE%");
    int templateSplitEnd = templateSplitBegin + 6;
    String templatePartOne = new String(
        template.substring(0, templateSplitBegin));
    String templatePartTwo = new String(
        template.substring(templateSplitEnd, template.length()));
    code = new String(reqId);
    template = new String(templatePartOne + code + templatePartTwo);
    // Substitute for %ALTCODE%
    templateSplitBegin = template.indexOf("%ALTCODE%");
    templateSplitEnd = templateSplitBegin + 9;
    templatePartOne = new String(
        template.substring(0, templateSplitBegin));
    templatePartTwo = new String(
        template.substring(templateSplitEnd, template.length()));
    altcode = code.substring(0, 5) + "-" + code.substring(5, 8);
    out.print(templatePartOne + altcode + templatePartTwo);
} catch (Exception e) {
    System.out.println("Error in substitute()");
}
答案

试着用以下方法制作一个 (String template, String splitBy, int offset) 作为参数。

另外,你也可以尝试使用 stringBegin = template.split(splitBy)[0]stringEnd = template.split(splitBy)[1] 而不是使用 indexOf() 然后 substring()

另一答案

enter image description here

这两个部分是重复的。你可以做一个方法来处理字符串

try {
     String template = new String(sourceTemplate);
           // Substitute for %CODE%
           code = new String(reqId);
           template = processString(template, 6, "%CODE%", code);
           // Substitute for %ALTCODE%
           altcode = code.substring(0, 5) + "-" + code.substring(5, 8);
           template = processString(template, 9, "%ALTCODE%", altcode);
           out.print(template);
       } catch (Exception e) {

       }

 private String processString(String template, int length, String code, String mid) {
       int templateSplitBegin = template.indexOf(code);
       int templateSplitEnd = templateSplitBegin + len;
       String templatePartOne = new String(
               template.substring(0, templateSplitBegin));
       String templatePartTwo = new String(
               template.substring(templateSplitEnd, template.length()));
       return new String(templatePartOne + mid + templatePartTwo);
   }

以上是关于识别下面一行重复代码的问题。的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Android Studio RecyclerView [重复]

c#代码片段快速构建代码

Python技巧-只用一行代码轻松实现图片文本识别

一行js代码识别Selenium+Webdriver及其应对方案

Notepad++编辑器——Verilog代码片段直接编译

iphone / Objective c的最佳代码片段网站是啥[重复]