Comparando strings em java

Comparando strings em java
É mais fácil entender a comparação de caracteres antes de aprender a comparação de literais de cordas. Uma comparação de strings é dada abaixo desta introdução. Com Java, os personagens são representados no computador por inteiros (números inteiros). Comparar caracteres significa comparar seus números correspondentes.

Com Java, a maçaneta A para a maçaneta z são os números inteiros de 65 a 90. A é 65, B é 66, C é 67, até Z, que é 90. Minúsculas 'a' para minúsculas 'z' são os números inteiros de 97 a 122. 'a' é 97, 'b' é 98, 'c' é 99, até 'z', que é 122. Dígitos decimais são os números inteiros, 48 ​​a 57. Ou seja, '0' é 48, '1' é 49, '2' é 50, até 9, que é 57.

Então, nesta nova ordem, os dígitos vêm primeiro antes das letras maiúsculas, que vêm a seguir antes das letras minúsculas. Antes dos dígitos, há a campainha, que é um caractere som e não imprimível. Seu número é 7. Há o caractere da guia do teclado, cujo número é 9. Existe o personagem Newline (pressionando a tecla Enter), cujo número é 10. Existe o personagem espacial (pressionando a tecla da barra espacial), cujo número é 32. Existe o caráter de exclamação, cujo número é 33. Existe o personagem para a frente, cujo número é 47. '(' tem o número, 40 e ')' tem o número, 41.

A sequência para caracteres é composta por alguns caracteres não alfanuméricos, cujos números estão abaixo de 48; Os números para dígitos decimais vêm a seguir; Alguns caracteres não alfanuméricos estão no próximo intervalo; Os números para letras maiúsculas seguem; Alguns caracteres não alfanuméricos estão no próximo intervalo; Os números para letras minúsculas seguem; Depois disso, há números para outros caracteres não alfanuméricos da língua inglesa.

Esses números são chamados de números de código. O número do código por $ é 36. O número do código para % é 37. O número do código para & é 38. O número do código para [é 91. O número do código para a barragem \ é 92. O número do código para] é 93. O número do código para é 123. O número do código para | é 124. O número do código para é 125.

Então, os personagens formam um novo tipo de alfabeto com sua própria ordem. A ordem é simples: basta usar os números de código. Ou seja, a sequência é simples: basta usar os números de código e poder associar cada número de código ao seu personagem. Não se esqueça que os números de código de dígitos decimais vêm antes das letras maiúsculas e as letras maiúsculas vêm antes das letras minúsculas.

E assim, 'a' é menor que 'a', escrito como 'a' < 'a'. '0' is less than 'A', written as, '0' < 'A'. '%' is less than '0', written as, '%' < '0'.

Comparar caracteres em Java significa comparar seus números de código equivalentes. Comparando caracteres em Java usa operadores relacionais, que são:

< meaning, less than
> Significado, maior que
<= meaning, less than or equal to
> = significado, maior ou igual a
== Significado, igual a
!= significado, não igual a

Java não usa esses operadores para comparar literais de string. Java usa métodos diferentes para comparação de string - veja abaixo. De fato, == significa outra coisa para comparação de string - veja abaixo. O equivalente aos operadores acima, para cordas, é explicado abaixo.

Com os personagens em Java, há um novo dicionário de símbolos. Cada símbolo é representado internamente por um número (número inteiro). Em Java, uma corda literal não consiste apenas em caracteres alfanuméricos. Em Java, um literal de cordas é uma sequência de caracteres alfanuméricos misturados com outros personagens. A comparação de literais de cordas em Java deve considerar este novo dicionário de símbolos (caracteres). A comparação é feita da mesma maneira que com o dicionário normal. Ao comparar string literais em Java, “$ texta [25]” < "$textB[26]", but coded differently - see below.

Conteúdo do artigo

  • Introdução - Veja acima
  • Construindo uma string
  • A string é igual ao método
  • Menos do que maior que
  • Menos que ou igual a
  • Conclusão

Construindo uma string

Uma string pode ser construída na linguagem do computador Java, como nos exemplos a seguir:

String str = "O que? US $ 10.000!";
String str = new String ("O que? US $ 10.000!");
char ch [] = 'w', 'h', 'a', 't', '?', ",' $ ',' 1 ',' 0 ',', ',' 0 ',' 0 ',' 0 ','!';
String str = new string (ch);

Já neste curto string literal, quatro caracteres não alfanuméricos ('?',' $ ',', '!') pode ser encontrado. Não é incomum encontrar também os personagens, '(', ')', '&', '%', '' e '' em strings produzidos por usuários de computador comuns. Ao comparar literais de strings, eles assumem suas posições na sequência de números do personagem "Dictionary", com base em números.

Há uma diferença entre um objeto de string e uma string literal. Um objeto String é a instanciação da classe String. Uma string literal é um texto em questão. Nos exemplos acima, STR é um objeto de string e “o que? US $ 10.000!”Sem as citações é um literal de corda.

A string é igual ao método

A sintaxe é:

BOOLEANOS Iguals (strings)

Retorna verdadeira se os literais de cordas forem iguais, de maneira normal de dicionário; e falso caso contrário. Esta comparação é sensível ao caso. Considere o seguinte código:

String str1 = "$ texta [26]";
String str2 = "$ texta [26]";
booleano bla = str1.igual a (STR2);
Sistema.fora.println (bla);
String str3 = "$ texta [26]";
String str4 = "$ texta [26]";
BLB booleano = STR3.igual a (STR4);
Sistema.fora.println (BLB);

A saída é:

verdadeiro
falso

As seqüências são as mesmas em comparar os literais STR1 e STR2, então o valor de retorno é verdadeiro. Ao comparar STR3 e STR4, as seqüências são as mesmas, mas uma corda literal tem texto em minúsculas e o outro tem texto em maiúsculas, portanto o valor de retorno é falso.

booleano Equalsignorecase (strings)

Com este método, o invólucro é ignorado. Se as seqüências forem as mesmas, se um literal estiver em minúsculas e a outra estiver em maiúsculas, esse método retornará verdadeiro. A saída do código a seguir é:

verdadeiro
verdadeiro

Código:

String str1 = "$ texta [26]";
String str2 = "$ texta [26]";
booleano bla = str1.Equalsignorecase (STR2);
Sistema.fora.println (bla);
String str3 = "$ texta [26]";
String str4 = "$ texta [26]";
BLB booleano = STR3.Equalsignorecase (STR4);
Sistema.fora.println (BLB);

Problema com == para strings

== compara as referências de dois objetos de string. Não é usado para comparar dois literais de cordas.

Menos do que maior que

int compare (strings)

Este método retorna um número inteiro negativo, se a string esquerda literal for menor que a string certa literal. Ele retorna 0 se ambos os literais de cordas forem iguais. Ele retorna um número inteiro maior que 0 se a corda esquerda literal for maior que a corda certa literal. O código a seguir retorna, -32 no computador do autor:

String str1 = "abcd";
String str2 = "abcd";
int it = str1.compareto (STR2);
Sistema.fora.println (it);

O código a seguir retorna -4 no computador do autor:

String str1 = "abcd";
String str2 = "efgh";
int it = str1.compareto (STR2);
Sistema.fora.println (it);

O código a seguir retorna 0 no computador do autor:

String str1 = "abcd";
String str2 = "abcd";
int it = str1.compareto (STR2);
Sistema.fora.println (it);

O código a seguir retorna +4 no computador do autor:

String str1 = "efg";
String str2 = "abcd";
int it = str1.compareto (STR2);
Sistema.fora.println (it);

int comparetoignorecase (strings)

Este método é o mesmo que compareto (), mas o caso é ignorado. O código a seguir retorna 0 no computador do autor:

String str1 = "abcd";
String str2 = "abcd";
int it = str1.comparetoignorecase (STR2);
Sistema.fora.println (it);

O código a seguir retorna 0 no computador do autor:

String str1 = "a2c3";
String str2 = "a2c3";
int it = str1.comparetoignorecase (STR2);
Sistema.fora.println (it);

Menos que ou igual a

Para fazer literais de strings menos ou equais para literais de cordas, dois métodos diferentes precisam ser combinados em uma condição IF, como na amostra de código a seguir:

String str1 = "abcd";
String str2 = "abcd";
if (str1.comparetoignorecase (str2) == 0 && str1.compareto (str2)<0)
Sistema.fora.println ("Literal esquerdo é menor ou igual a literal direito.");

A saída é:

A literal esquerda é menor ou igual a literal correta.

Melhor que ou igual a

O código a seguir ilustra a situação para maior ou equal para:

String str1 = "abcd";
String str2 = "abcd";
if (str1.comparetoignorecase (str2) == 0 && str1.compareto (str2)> 0)
Sistema.fora.println ("Literal esquerdo é maior ou igual a literal direito.");

A saída é:

A literal esquerda é maior ou igual a literal direito.

Conclusão

Em Java, todos os personagens são representados por inteiros. Esses números inteiros são os números de código para os caracteres. As letras maiúsculas são representadas por números inteiros menores que os números inteiros para letras minúsculas. Todos esses números de código existem em uma sequência do menor ao maior. Uma comparação de caracteres usa esta sequência. Comparar string literais também usa essa sequência de maneira semelhante a como as palavras do dicionário normal são comparadas. Comparando caracteres usa operadores relacionais aritméticos. Comparando de literais de cordas não usam operadores relacionais aritméticos. Ele usa certos métodos de string java, que foram explicados acima.

Há uma diferença entre um objeto de string e uma string literal. O foco neste tutorial tem sido a comparação de literais de cordas. Um objeto String é uma instanciação da classe String. Uma string literal é uma sequência de caracteres em duas citações. == pode ser usado para testar a igualdade de caracteres únicos, mas não a igualdade de literais de cordas. Com objetos de string, == testa a igualdade de referências de objeto de string.

Nota: “A” é uma string, enquanto 'a' é um personagem.

Chrys