"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso substituir com eficiência várias substringas em uma string java?

Como posso substituir com eficiência várias substringas em uma string java?

Postado em 2025-03-23
Navegar:651

How Can I Efficiently Replace Multiple Substrings in a Java String?

substituindo várias substâncias em uma string com eficiência em java

quando confrontado com a necessidade de substituir várias substringas dentro de uma string, é tentador para recorrer à abordagem bruta de seprar repetidamente No entanto, isso pode ser ineficiente para seqüências grandes ou ao trabalhar com inúmeras seqüências de strings. Expressões regulares permitem definir padrões de pesquisa complexos e executar transformações de texto em uma única operação. Usando o StringUtils do Apache Commons Lang, você pode criar um padrão e um fósforo da seguinte forma:

map tokens = new hashmap (); tokens.put ("gato", "garfield"); tokens.put ("bebida", "café"); String model = "�t% realmente precisa de alguma` `viva -visa.”; // Crie padrão do formato "%(Cat | Beverage)%" String PatternString = "%(" StringUtils.Join (tokens.keyset (), "|"))%"; Padrão padrão = padrão.compile (padringstring); Matcher Matcher = Pattern.Matcher (modelo);

Em seguida, você pode usar o Matcher para encontrar todas as ocorrências dos tokens e substituí -los pelos valores correspondentes:

StringBuffer sb = new StringBuffer (); while (matcher.find ()) { Matcher.appendReplacement (sb, tokens.get (matcher.group (1))); } Matcher.appendtail (SB); System.out.println (sb.toString ());

benefícios das expressões regulares

 Depois que a expressão regular é compilada, a pesquisa da sequência de entrada é normalmente muito rápida. Além disso, expressões regulares fornecem a flexibilidade de lidar com padrões de pesquisa complexos, como os que envolvem parênteses e quantificadores. 
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3