Visão Geral
Formatação de String e geração de saída de texto aparece frequentemente durante a programação. Em muitos casos, há necessidade de adicionar uma nova linha a uma string para formatar a saída.
P>Vejamos como usar caracteres de nova linha.
Outra leitura:
Verificando se uma string está vazia ou em branco em Java
Verificar se uma String contém uma Substring
Adicionar caracteres de uma nova linha numa corda
Os sistemas operacionais têm caracteres especiais denotando o início de uma nova linha. Por exemplo, no Linux uma nova linha é denotada por “\n”, também chamada de Line Feed. No Windows, uma nova linha é denotada usando “\r\n”, por vezes chamada de Carriage Return and Line Feed, ou CRLF.
Adicionar uma nova linha em Java é tão simples como incluir “\n” , “\r”, ou “\r\n” no fim da nossa string.
2.1. Usando CRLF Line-Breaks
Para este exemplo, queremos criar um parágrafo usando duas linhas de texto. Especificamente, queremos que a linha2 apareça numa nova linha após linha1.
Para um SO baseado em Unix/Linux/Novo Mac podemos usar “\n”:
String line1 = "Humpty Dumpty sat on a wall.";String line2 = "Humpty Dumpty had a great fall.";String rhyme = line1 + "\n" + line2;
Se estivermos num SO baseado em Windows, podemos usar “\r\n”:
rhyme = line1 + "\r\n" + line2;
Para um velho SO baseado em Mac, podemos usar “\r”:
rhyme = line1 + "\r" + line2;
Demonstrámos três métodos de adicionar uma nova linha, mas infelizmente, são dependentes da plataforma.
2.2. Usando Separadores de Linha Independentes da Plataforma
Podemos usar constantes definidas pelo sistema quando queremos que o nosso código seja independente da plataforma.
Por exemplo, usando o Sistema.lineSeparator() para dar um separador de linhas:
rhyme = line1 + System.lineSeparator() + line2;
Sistema.getProperty(“line.separator”):
rhyme = line1 + System.getProperty("line.separator") + line2;
2.3. Usando Caracteres de Nova Linha Independentes de Plataforma
Embora os separadores de linha proporcionem independência de plataforma, forçam-nos a concatenar as nossas cordas.
se estivermos a usar algo como System.out.printf ou String.Então o caractere de nova linha independente da plataforma, %n, pode ser usado directamente dentro de uma string:
rhyme = "Humpty Dumpty sat on a wall.%nHumpty Dumpty had a great fall.";
É o mesmo que incluir System.lineSeparator() dentro da nossa string, mas não precisamos de dividir a string em várias partes.
Adicionar caracteres de nova linha numa página HTML
P>Ponhamos que estamos a criar uma string que é parte de uma página HTML. Nesse caso, podemos adicionar uma tag de quebra HTML <br>.
Também podemos usar caracteres Unicode “& #13;” (Carriage Return) e “& #10;” (Line Feed). Embora estes caracteres funcionem, não funcionam exactamente como seria de esperar que funcionassem em todas as plataformas. Em vez disso, é melhor usar <br>>
para quebra de linha.
Adicionalmente, podemos usar “\n” em alguns elementos HTML para quebrar uma linha.
Overtudo, estes são os três métodos de quebrar uma linha em HTML. Podemos decidir qual usar dependendo da tag HTML que estamos a usar.
3.1. HTML Break Tag
Podemos usar HTML break tag <br> para quebrar uma linha:
>
rhyme = line1 + "<br>" + line2;
O <br> tag para quebrar uma linha funciona em quase todos os elementos HTML como <body><p><pre>, etc. Contudo, notar que não funciona no <textarea> tag.
3.2. Newline Character
Podemos usar ‘\n’ para quebrar uma linha se o texto estiver incluído em <pre> ou <textarea> tag:
rhyme = line1 + "\n" + line2;
3.3. Caracteres Unicode
Finalmente, podemos usar caracteres Unicode “& #13;” (Carriage Return) e “& #10;” (Line Feed) para quebrar uma linha. Por exemplo, no <textarea> tag podemos usar qualquer uma destas:
rhyme = line1 + "" + line2;rhyme = line1 + "" + line2;
Para a tag <pre>, ambas as linhas abaixo irão funcionar:
rhyme = line1 + "" + line2;rhyme = line1 + "" + line2;
A diferença entre \n e \r
\r e \n são caracteres assinalados com valores ASCII de 13 (CR) e 10 (LF), respectivamente. Ambos representam uma quebra entre duas linhas, mas os sistemas operativos utilizam-nos de forma diferente.
Em Windows, uma sequência de dois caracteres é utilizada para iniciar uma nova linha, CR imediatamente seguida por LF. Inversamente, em sistemas do tipo Unix, apenas LF é utilizado.
Ao escrever aplicações Java, temos de prestar atenção aos caracteres de quebra de linha que utilizamos porque as aplicações comportar-se-ão de forma diferente dependendo do sistema operativo em que serão executadas.
A opção mais segura e mais compatível é utilizar System.lineSeparator(). Desta forma, não teremos de ter em conta o sistema operativo.
Conclusion
Neste artigo, discutimos como adicionar novos caracteres de linha a uma string em Java.
Vimos também como escrever código independente de plataforma para uma nova linha utilizando System.lineSeparator() e System.getProperty(“line.separator”).
Finalmente, terminámos com como adicionar uma nova linha no caso de estarmos a gerar uma página HTML.
A implementação completa deste artigo pode ser encontrada no GitHub.
Começar com Spring 5 e Spring Boot 2, através do curso Learn Spring:
>> VERIFIQUE O CURSO