>Java >java지도 시간 >String의 `replace` 메소드가 내 HTML 콘텐츠를 업데이트하지 않는 이유는 무엇입니까?

String의 `replace` 메소드가 내 HTML 콘텐츠를 업데이트하지 않는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-12 18:12:01963검색

Why Doesn't String's `replace` Method Update My HTML Content?

Java 문자열 대체 수수께끼

문자열 내의 값을 업데이트하려는 시도에서 제공된 코드는 문자열의 대체 메소드를 사용합니다.

String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
html.replace("**USERNAME**", "User A");
html.replace("**PASSWORD**", "B");

그러나 이 접근 방식은 기대한 결과를 얻지 못합니다. 왜 그럴까요?

String Immutability Bites

이 문제를 이해하는 열쇠는 String의 불변성에 있습니다. Java의 다른 객체와 달리 문자열은 내부에서 수정할 수 없습니다. 바꾸기와 같이 문자열을 변경하는 것으로 보이는 모든 작업은 실제로 새 문자열 개체를 생성합니다.

주어진 코드에서 바꾸기 호출은 새 문자열 개체를 생성하지만 참조 html은 계속해서 원래 문자열을 가리킵니다. . 이는 원본 HTML 콘텐츠가 교체 시도의 영향을 받지 않음을 의미합니다.

해결책: 재할당 수용

이 불변성 장애물을 극복하려면 참조 HTML을 교체로 생성된 새 문자열입니다. 수정된 코드는 다음과 같습니다.

html = html.replace("**USERNAME**", "User A");
html = html.replace("**PASSWORD**", "B");

대체 호출마다 html을 다시 할당하여 원하는 대체 항목이 포함된 업데이트된 문자열을 가리키도록 할 수 있습니다. 이 방법은 원하는 대체를 달성하기 위해 문자열의 불변성을 인식하고 해결합니다.

위 내용은 String의 `replace` 메소드가 내 HTML 콘텐츠를 업데이트하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.