Java에서 효율적으로 여러 하위 문자열 바꾸기
문자열 내에서 여러 하위 문자열을 바꾸는 것은 다양한 목적을 위해 필요합니다. 간단한 경우에는 기존의 string.replace 메소드로 충분하지만 광범위한 문자열이나 수많은 대체를 처리하기에는 충분하지 않을 수 있습니다.
이 문제를 해결하는 효율적인 접근 방식은 java.util.regex.Matcher 클래스를 활용하는 것입니다. . 이를 위해서는 초기 컴파일 시간이 필요하지만 대규모 입력이나 반복적인 검색 패턴에 유용한 것으로 입증되었습니다.
다음 시나리오를 고려하십시오.
문제: 여러 토큰을 교체합니다(예: " cat" 및 "beverage")를 해당 값(예: "Garfield" 및 "coffee")과 함께 지정된 문자열 내에서 사용합니다.
해결책:
<code class="java">Map<String, String> tokens = new HashMap<>(); tokens.put("cat", "Garfield"); tokens.put("beverage", "coffee"); String template = "%cat% really needs some %beverage%."; // Create pattern of the format "%(cat|beverage)%" String patternString = "%(" + StringUtils.join(tokens.keySet(), "|") + ")%"; Pattern pattern = Pattern.compile(patternString); Matcher matcher = pattern.matcher(template); StringBuffer sb = new StringBuffer(); while(matcher.find()) { matcher.appendReplacement(sb, tokens.get(matcher.group(1))); } matcher.appendTail(sb); System.out.println(sb.toString());</code>
이 접근 방식을 활용하면 초기 컴파일 비용이 작은 입력 크기 또는 자주 변경되는 검색에 대한 이점보다 큽니다. 패턴. 그러나 광범위한 문자열이나 수많은 대체 문자열을 사용하여 작업할 때 효율성이 크게 향상됩니다.
위 내용은 Java에서 여러 하위 문자열을 효율적으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!