JavaRush /Blogue Java /Random-PT /Escapando caracteres em Java
Oleksandr Klymenko
Nível 13
Харків

Escapando caracteres em Java

Publicado no grupo Random-PT
Algo deu errado! Este artigo foi escrito como um teste para uma posição na equipe JavaRush. E foi escrito como uma palestra completa. Por isso garanto a qualidade e quantidade de conhecimento útil acumulado neste post. Além de informações práticas e teóricas, o artigo contém fatos interessantes que você talvez nem conheça! Escapando caracteres em Java - 1Olá Mundo! O escape de personagens é uma solução técnica muito interessante e necessária. A necessidade de escapar dos personagens desempenhou um papel importante na história de toda a indústria da programação. Neste artigo, falaremos sobre o que é o escape de caracteres, por que há necessidade de escapá-los e como o escape de caracteres é implementado em Java. O artigo fornecerá exemplos e fatos interessantes relacionados ao tema da fuga de personagens. Gostar de ler! Todas as informações em um sistema computacional são representadas na forma de texto, que em um nível inferior é representado por bytes. Quando escrevemos uma carta ou mensagem, digitamos um texto que será compreensível para uma pessoa. Quando escrevemos código no IDE, digitamos um texto que o compilador pode analisar. Em Java, o texto pode ser representado como um tipo Stringcujos dados são representados por caracteres de controle – aspas emparelhadas.
String str = "Hello World!";
Com o texto “Olá, mundo!” não surgem problemas, mas e se o mesmo texto precisar ser destacado no discurso direto? Utilizando as regras da gramática, fica claro que o texto “Hello World!”, além de caracteres de controle do tipo String, deve ser colocado entre aspas diretas do discurso.
String str = "Java said, "Hello World!"";
Esta opção não funcionará porque o compilador simplesmente não entenderá em que ponto termina a inicialização da variável str. Para resolver este e outros problemas semelhantes, foi inventado o escape de caracteres , ou seja, alterar os caracteres de controle para as chamadas sequências de controle, também conhecidas como sequências de escape . Abaixo está uma lista de sequências de escape java válidas para uso em strings. \t — Caractere de tabulação (em java – o equivalente a quatro espaços); \b— Um caractere de retorno no texto um passo atrás ou exclusão de um caractere em uma linha (backspace); \n— Símbolo de nova linha; \r— Símbolo de retorno de transporte; \f— Pule a página para o início da próxima página; \'— Aspas simples; \"— Aspas duplas; \\— O caractere de barra invertida ( \). Agora vamos destacar o discurso direto em nossa frase para que o compilador possa analisar facilmente o que está escrito.
String str = "Java said, \"Hello World!\"";
Assim, o texto escrito é compreensível tanto para o compilador quanto para uma pessoa se o conteúdo da variável strfor exibido na tela. Descobrimos o que é a fuga de personagem e por que ela é necessária. E eles até escaparam das aspas duplas! Vamos analisar as sequências de escape restantes. O caractere de tabulação em uma linha é indicado por uma sequência de escape \te é análogo a quatro espaços. No entanto, se o comprimento de uma string que consiste em quatro espaços for igual ao comprimento de quatro caracteres, então o comprimento de uma string com um caractere de tabulação será igual a um. O caractere de tabulação é frequentemente usado para construir tabelas ou elementos de interface pseudo-gráfica , porque... Isto é mais conveniente do que escrever quatro espaços. Abaixo está um exemplo de interface pseudográfica. Escapando caracteres em Java - 2Dentre todas as sequências de escape, o símbolo é \btalvez o mais interessante, pois nos permite deletar o último caractere da linha de saída, como se o apagássemos pressionando a tecla backspace .
System.out.print("2 + 2 = 5"); // Screen displays 2 + 2 = 5
System.out.print("\b");// Screen displays 2 + 2 =
System.out.print("4");// Screen displays 2 + 2 = 4
Os símbolos \ntêm \ruma história comum - vamos examiná-los juntos. Você pode ter encontrado o caractere de quebra de linha \nantes. Por exemplo, se um método println()gera informações para que a próxima saída esteja em uma nova linha, então o método print()não executa uma quebra de linha após a saída, mas se você adicionar um caractere ao final da saída \n, então uma quebra de linha será realizado.
System.out.print("Next output will be on a new line\n");
System.out.println("Next output will be on a new line");
O caractere de retorno de carro \rnos permite retornar o cursor ao início da linha de saída e exibir novas informações como se não houvesse nada anteriormente naquela linha.
System.out.print("Text to be rewritten.");//The screen displays "Text to be rewritten."
System.out.print('\r');//The screen is blank
System.out.print("New text.");//The screen displays "New text."
Na verdade, o retorno de carro remonta à época em que o texto era impresso em máquinas de escrever. Para realizar o avanço da linha, era necessário movimentar o carro e abaixar a alavanca (parte do mecanismo da máquina de escrever), após o que seria realizado o avanço da linha. Se a alavanca não fosse abaixada, seria possível continuar a imprimir na mesma linha. Isto é o que observamos quando exibimos o símbolo \r. Nesse sentido, quando o programador queria realizar uma quebra de linha, ele, por hábito, executava uma sequência de caracteres no final da saída \r\n. Quando a era da máquina de escrever chegou ao fim, houve uma geração de programadores que ainda usava essa sequência, embora eles próprios nunca tivessem trabalhado com uma máquina de escrever. Muitas vezes eles esqueciam em que ordem precisavam completar uma determinada sequência - \r\nou \n\r. Então, uma palavra de teste veio em seu auxílio return, onde a ordem em que esses símbolos eram exibidos era claramente visível. Porém, mais tarde, ao desenvolver software para as primeiras versões do Windows, após o MS-DOS, os programadores foram obrigados a usar a sequência \r\n. Agora você não precisa se preocupar com isso e usar apenas o caractere para quebrar uma linha \n. Escapando caracteres em Java - 3Vamos voltar no tempo, por volta dos anos 80. Foi então que o símbolo de avançar para \fa página seguinte se tornou popular. Naquela época existiam impressoras de grande linha, para trabalhar com as quais era necessário escrever um código de programa contendo o que e como a impressora deveria imprimir. E para indicar que o texto deve ser iniciado a partir de uma nova página, foi utilizado o símbolo \f. Em nossa época, esse símbolo há muito perdeu sua relevância e é improvável que você o encontre. As dimensões da impressora linear são bastante impressionantes. Escapando caracteres em Java - 4Com símbolos \’e \\tudo exatamente igual ao escape de aspas duplas, havia um exemplo no início do artigo. Você terá que escapar de aspas simples, por exemplo, para inicializar o tipo char com aspas simples.
char ch = '\'';
Escape do caractere de barra invertida para indicar que o caractere a seguir não fará parte da sequência de escape.
System.out.println("\\n - line break escape sequence");
// Output: \n - line break escape sequence
Na prática, muitas vezes você precisa escapar de barras invertidas ao trabalhar com caminhos:
System.out.println("It's Java string: \"C:\\Program Files\\Java\\jdk1.7.0\\bin\"");
// Output: It's Java string: "C:\Program Files\Java\jdk1.7.0\bin"
Enfatizei que essas sequências de escape são usadas em strings (strings literais), porque o restante deles é usado para descrever expressões regulares de classe Patterne não é relevante para o tópico deste artigo. Aqui você pode ver uma lista de todas as sequências de escape da classe Pattern. No entanto, é importante notar que as expressões regulares na forma em que existem agora não podem ser imaginadas sem o uso de sequências de escape, não apenas em java, mas também em outras linguagens de programação populares, por exemplo, PHP. Em java, o escape de caracteres também é usado na formatação de strings. Por exemplo, ao especificar um formato de string para exibir o símbolo de porcentagem, você deve duplicar o símbolo de porcentagem - %%, caso contrário, obteremos um erro e o IDE solicitará que você adicione a porcentagem.
System.out.printf("Milk fat percentage : %d%%", 10);
// Milk fat percentage : 10%
Isso conclui o artigo. Espero que você tenha aprendido muito sobre fuga de personagem e como colocá-la em prática. O escape de caracteres é inerente a muitas linguagens de programação. Em java, como em outras linguagens semelhantes a C, esta tecnologia é implementada de forma quase idêntica. Portanto, o conhecimento que você obtém com este artigo pode ser útil não apenas em java. Obrigado pela atenção e boa sorte nos estudos!
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION