A melhor maneira de cortar os espaços em uma String
Pergunta
Como faço para aparar espaços dentro deixando apenas um espaço levando consideração de desempenho?
Input: AA BB Output: AA BB Input: A A Output: A A
Solução
System.out.println(" AA BB".replaceAll("\\s+", " ").trim());
Output:
AA BB
Nota: Ao contrário de algumas das outras soluções aqui, isso também substitui uma única guia com um único espaço. Se você não tem nenhum guias que você pode usar "{2}" em vez que será ainda mais rápido:
System.out.println(" AA BB".replaceAll(" {2,}", " ").trim());
Outras dicas
Substituir dois ou mais espaços "\\s{2,}"
por um único " "
espaço e fazer um trim()
depois de se livrar da esquerda e à direita espaços como você mostrou no 1º exemplo.
output = input.replaceAll("\\s{2,}", " ").trim();
s = s.replaceAll("\\s+", " " ).trim();
"Hello a a g g a gag gs gs@".replaceAll( "[ ]+{2}", " ") ).trim();
Existem respostas corretas aqui, por exemplo:.
s = s.replaceAll("\\s+", " " ).trim();
Mas eu acho que também é importante escolher a pergunta correta. Em vez de perguntar sobre a poda de uma String
usando expressões regulares, porque não basta perguntar sobre aparar a String
, e permitir que as pessoas respondendo a mostrar-lhe a melhor estratégia?
Pode muito bem haver melhores formas de entrar em colapso espaços do que usar uma expressão regular. Há certamente outros maneiras.