проблема в распознавании дублированного кода в строке ниже - PullRequest
0 голосов
/ 27 апреля 2020

У меня проблемы с поиском, какая часть кода дублируется и как это исправить?

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()");
}

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Попробуйте создать метод с (String template, String splitBy, int offset) в качестве параметров.

также вы можете попробовать stringBegin = template.split(splitBy)[0] и stringEnd = template.split(splitBy)[1] вместо indexOf(), а затем substring()

0 голосов
/ 27 апреля 2020

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);
   }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...