识别下面一行重复代码的问题。
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()
另一答案
这两个部分是重复的。你可以做一个方法来处理字符串
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 [重复]