'하위 문자열'호출에 중복

맥심 :

나는 방정식을 반대하는 간단한 코드를 작성했지만, 두 줄에 의해 강조 lint하게 IntelliJ IDEA에서. 정확한 메시지는

'하위 문자열'호출에 중복

final String equation = "20+3*475-2-1*4";

final int size = equation.length();
final StringBuilder sb = new StringBuilder(size);
int right = size;
for (int i = size - 1; i > -1; i--) {
    switch (equation.charAt(i)) {
        case '+': case '-': case '*':
            sb.append(equation.substring(i + 1, right));  // this line
            sb.append(equation.charAt(i));
            right = i;
    }
}
if (right != 0) {
    sb.append(equation.substring(0, right));   // and this line
}

나는 지금 상황에 때 직면하지 않은 lint이유없이 하이라이트 뭔가를. 하지만 지금은 이러한 호출이 중복 왜 아무 생각이 없습니다.

스테판 HAUSTEIN :

이 호출을 단순화 할 수 있습니다 :

sb.append(equation, i + 1, right);

이 구현은 직접 "식"의 원하는 부분을 복사 할 수 있도록 명시 중간 스트링 구성을 피한다.

추천

출처http://43.154.161.224:23101/article/api/json?id=183357&siteId=1