String.replaceAll() 이중 대체 예외 이해
다음 코드가 왜 필요한지에 대한 질문이 생깁니다.
<code class="java">System.out.println("test".replaceAll(".*", "a"));</code>
예상된 "a" 대신 "aa"가 반환됩니다. 이 예외는 ".*$"를 사용할 때도 발생합니다.
원인:
이 예외는 ".*" 정규식의 특성으로 인해 발생합니다. 빈 문자열을 포함하여 모든 문자 시퀀스와 일치합니다. 따라서:
해결책:
이 문제를 방지하려면 다음을 사용하는 것이 좋습니다.
정규식 동작:
.*는 빈 문자열과 일치할 수 있습니다. , 두 번 이상 일치할 수 없습니다. 그 이유는 다음과 같습니다.
위 내용은 `String.replaceAll(\".*\", \"a\")` 결과가 \"a\" 대신 \"aa\"가 되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!