java.lang.string
methods () 및 replaceall () 메소드에서 java.lang.string의 replaceall () 메소드는 문자열 내에서 텍스트 구체를 수행하도록 설계되었습니다. 그러나이 두 가지 방법 사이에는 중요한 차이가 있습니다. Relbaceall ()는 정규식 (Regex)을 사용하고 대체 ()는 그렇지 않습니다. 이 차이는 자신의 행동에 나타나서 부적절하게 사용하면 미묘한 버그로 이어집니다.
method
메소드는 한 쌍의 문자 (char) 또는 문자 시퀀스 (charequence)를 취합니다. 지정된 문자 또는 문자 시퀀스의 모든 발생을 제공된 대체물로 대체합니다. 이 방법은 Regex 일치가 필요하지 않은 간단한 대체에 유용합니다.
replaceall () 메소드
[replaceall () 메소드는 첫 번째 인수로 정규식을 취합니다. 이를 통해 패턴에 따라보다 복잡한 치환을 수행 할 수 있습니다. 지정된 Regex와 일치하는 모든 하위 문자열이 제공된 교체품을 대체합니다.
올바른 메소드 선택
적절한 방법을 선택하는 것은 대체 작업의 복잡성에 따라 다릅니다. 패턴을 고려하지 않고 정확한 문자 나 문자 시퀀스를 교체 해야하는 경우 replace () 메소드를 사용하십시오. 그러나 더 고급 Regex 기반 일치가 필요한 경우, replaceall () 메소드가 더 나은 선택입니다.
String s = "Hello.World"; String result = s.replace('.', '/'); // Using replace() for character-by-character substitution String result2 = s.replaceAll("\\.", "/"); // Using replaceAll() for regex-based substitution예
slash (.)의 모든 발생을 대체하려는 예를 고려해 봅시다. 문자열 result = s.replace ( '.', '/'); // 문자 별 대체 대체에 대체 ()를 사용합니다 문자열 result2 = s.replaceall ( "\\.", "/"); // regex 기반 대체에 replaceall ()를 사용하여
result2와 result2는 동일한 수정 된 문자열 "hello/world"를 포함합니다. 그러나이 기간의 첫 번째 발생 만 슬래시로 대체하려면 ReplaceAll () 대신 replaceFirst () 메소드를 대체 First () 대신에 대체 First ()를 사용하여 지정된 regex의 첫 번째 발생과 일치합니다. 텍스트 대체의 잠재적 버그. 간단한 문자 수준 교체가 필요한 경우 replace ()를 사용하십시오. 보다 복잡한 Regex 기반 교체의 경우 replaceall ()을 사용하십시오.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3