을 종료하지와 루프 동안 :내가 프로그램 아래 사용하여 문자열에서 연속 중복 문자를 제거하는 프로그램을 쓰고 있어요 부울
는static void main(String[] args){
String s = "abcdeedcbfgf";
removeConsecutiveDuplicate(s);
}
static void removeConsecutiveDuplicate(String s) {
String tmp = "";
boolean isEligible = false;
for (int i = 0; i < s.length() - 1; i++) {
if (s.charAt(i) == s.charAt(i + 1)) {
tmp = s.substring(0, i) + s.substring((i + 2), s.length());
System.out.println(tmp);
s = tmp;
isEligible = true;
break;
}
}
System.out.println("s is:" + s);
while (isEligible)
removeConsecutiveDuplicate(s);
}
는 출력은 다음과 같아야합니다 가 더 연속 된 문자가 없을 때 그것을해야 afgf 잠시 동안 나는 깃발을 사용하고있어. 그러나 깃발은 진실한 가치를 얻고 있습니다.
나는 그것을 어떻게하고 있는지 모른다.
누군가 내가 잘못하고있는 부분을 이해할 수 있습니까?
이것은 isEligible가 처음 선언 된 프레임의 값을 변경하지 않기 때문입니다. 얼마나 오래 갈 것입니까? 왜냐하면 당신이 정말 빨리 힙을 다 써 버릴 것이라고 생각하기 때문에 – CraigR8806
즉'removeConsecutiveDuplicate()'를 호출 할 때마다 isEligible에 새로운 범위와 새로운 값을 생성하고 있습니다. 이 새로운 값은 ** 전송되지 않습니다 ** 처음으로 돌아 오는 동안 루프가 보이지 않습니다 – CraigR8806
'main()'의's' 문자열은 호출 후에 동일하게 유지됩니다 (원하는대로 이후 반환). 메서드를 호출자에게 반환하는 방법을 원할 것입니다. –