Eu tenho uma seqüência de caracteres que contém algum texto seguido por uma linha em branco. Qual é a melhor maneira de manter a parte com texto, mas remova a nova linha de espaço em branco do final?
java
string
line
blank-line
Confiqure
fonte
fonte
Respostas:
Use o
String.trim()
método para se livrar dos espaços em branco (espaços, novas linhas etc.) do início e do fim da string.fonte
fonte
tl; dr
String::strip…
O
String::trim
método antigo possui uma definição estranha de espaço em branco .Conforme discutido aqui , o Java 11 adiciona novos
strip…
métodos àString
classe. Eles usam uma definição de espaço em branco mais otimizada para Unicode. Veja as regras desta definição na classe JavaDoc paraCharacter::isWhitespace
.Código de exemplo.
Ou você pode retirar apenas o espaço em branco à esquerda ou à direita .
Você não menciona exatamente quais pontos de código compõem suas novas linhas. Imagino que sua nova linha esteja provavelmente incluída nesta lista de pontos de código segmentados por
strip
:fonte
Esse código Java faz exatamente o que é solicitado no título da pergunta, ou seja, "remove novas linhas do início e do fim de uma string-java":
Remova as novas linhas apenas do final da linha:
Remova as novas linhas apenas do início da linha:
fonte
Se sua string for potencialmente
null
, considere usarStringUtils.trim()
- a versão com segurança nula deString.trim()
.fonte
fonte
Vou adicionar uma resposta a isso também porque, embora eu tenha a mesma pergunta, a resposta fornecida não é suficiente. Pensando bem, percebi que isso pode ser feito muito facilmente com uma expressão regular.
Para remover novas linhas desde o início:
e final de uma string:
Estou certo de que essa não é a maneira mais eficiente de aparar uma string. Mas parece ser a maneira mais limpa e simples de incorporar essa operação.
Observe que o mesmo método pode ser feito para aparar qualquer variação e combinação de caracteres de cada extremidade, pois é uma regex simples.
fonte
split()
é apenas o limite. Deixe-o desativado se desejar corresponder um número ilimitado de vezes.Tente isto
fonte
Se você deseja remover apenas quebras de linha (não espaços, tabulações) no início e no final de uma String (não entre elas), use esta abordagem:
Use expressões regulares para remover retornos de carro (
\\r
) e feeds de linha (\\n
) do início (^
) e final ($
) de uma sequência:Exemplo completo:
Emite:
fonte
fonte