Comparación de cuerdas en Java

Comparación de cuerdas en Java
Es más fácil entender la comparación de los personajes antes de aprender la comparación de literales de cuerdas. Se da una comparación de cadenas a continuación esta introducción. Con Java, los caracteres están representados en la computadora por enteros (números enteros). Comparar caracteres significa comparar sus números correspondientes.

Con Java, la mayúscula A a la mayúscula z son los enteros de 65 a 90. A es 65, B es 66, C es 67, hasta Z, que es 90. Minúsculas 'a' a minúsculas 'z' son los enteros de 97 a 122. 'a' es 97, 'b' es 98, 'c' es 99, hasta 'z', que es 122. Los dígitos decimales son los enteros, 48 ​​a 57. Es decir, '0' es 48, '1' es 49, '2' es 50, hasta 9, que es 57.

Entonces, en este nuevo orden, los dígitos son primero antes de las letras mayúsculas, que vienen a continuación antes de las letras minúsculas. Antes de los dígitos, está la campana, que es un personaje sonoro y no imprimible. Su número es 7. Existe el carácter de pestaña del teclado, cuyo número es 9. Existe el carácter de Newline (presionando la tecla ENTER), cuyo número es 10. Existe el carácter espacial (presionando la tecla de barra espacial), cuyo número es 32. Existe el personaje de exclamación, cuyo número es 33. Existe el personaje delantero, cuyo número es 47. '(' tiene el número, 40 y ')' tiene el número, 41.

La secuencia para los caracteres está compuesta por algunos caracteres no alfanuméricos, cuyos números están por debajo de 48; Los números para los dígitos decimales vienen a continuación; Algunos personajes no alfanuméricos están en el siguiente intervalo; Siguen números para letras mayúsculas; Algunos personajes no alfanuméricos están en el siguiente intervalo; Siguen los números para letras minúsculas; Después de esto, hay números para otros caracteres no alfanuméricos del idioma inglés.

Estos números se llaman números de código. El número de código por $ es 36. El número de código para % es 37. El número de código para y es 38. El número de código para [es 91. El número de código para la barra insegura \ es 92. El número de código para] es 93. El número de código para es 123. El número de código para | es 124. El número de código para es 125.

Entonces, los personajes forman un nuevo tipo de alfabeto con su propio pedido. El pedido es simple: solo use los números de código. Es decir, la secuencia es simple: solo use los números de código y pueda asociar cada número de código a su carácter. No olvide que los números de código de dígitos decimales se presentan antes de las letras mayúsculas, y las letras mayúsculas vienen antes de las letras minúsculas.

Y así, 'a' es menos que 'a', escrito como, 'a' < 'a'. '0' is less than 'A', written as, '0' < 'A'. '%' is less than '0', written as, '%' < '0'.

Comparar personajes en Java significa comparar sus números de código equivalentes. Comparar personajes en Java usa operadores relacionales, que son:

< meaning, less than
> Significado, mayor que
<= meaning, less than or equal to
> = significado, mayor o igual a
== Significado, igual a
!= significado, no igual a

Java no usa estos operadores para comparar literales de cadena. Java utiliza diferentes métodos para la comparación de cadenas: consulte a continuación. De hecho, == significa algo más para la comparación de cadenas: ver a continuación. El equivalente de los operadores anteriores, para las cadenas, se explica a continuación.

Con personajes en Java, hay un nuevo diccionario de símbolos. Cada símbolo está representado internamente por un número (entero). En Java, una cadena literal no consiste solo en caracteres alfanuméricos. En Java, una cadena literal es una secuencia de caracteres alfanuméricos mezclados con otros personajes. La comparación de literales de cadena en Java tiene que considerar este nuevo diccionario de símbolos (caracteres). La comparación se realiza de la misma manera que con el diccionario normal. Al comparar literales de cadena en Java, "$ texta [25]" < "$textB[26]", but coded differently - see below.

Contenido del artículo

  • Introducción - Ver arriba
  • Construyendo una cadena
  • El método de cadena es igual a
  • Menos que, mayor que
  • Menos que o igual a
  • Conclusión

Construyendo una cadena

Se puede construir una cadena en el lenguaje informático Java, como en los siguientes ejemplos:

Cadena str = "que? $ 10,000!";
Cadena str = new String ("Qué? $ 10,000!");
char ch [] = 'w', 'h', 'a', 't', '?', ",' $ ',' 1 ',' 0 ',', ',' 0 ',' 0 ',' 0 ','!';
Cadena str = new String (ch);

Ya en esta breve cadena literal, cuatro personajes no alfanuméricos ('?ps!') puede ser encontrado. No es raro encontrar también los personajes, '(', ')', '&', '%', '' y '' en cadenas producidas por usuarios de computadoras comunes. Al comparar literales de cadena, toman sus posiciones en la secuencia de números del personaje "Diccionario", basado en números.

Hay una diferencia entre un objeto de cadena y una cadena literal. Un objeto de cadena es la instancia de la clase de cadena. Una cadena literal es un texto en cuestión. En los ejemplos anteriores, STR es un objeto de cadena y "qué? $ 10,000!"Sin las citas es una cadena literal.

El método de cadena es igual a

La sintaxis es:

boolean iguales (cadenas S)

Devuelve verdadero si los literales de cadena son iguales, en la moda del diccionario normal; y falso de lo contrario. Esta comparación es sensible a los casos. Considere el siguiente código:

Cadena str1 = "$ texta [26]";
Cadena str2 = "$ texta [26]";
booleano bla = str1.iguales (str2);
Sistema.afuera.println (bla);
Cadena str3 = "$ texta [26]";
Cadena str4 = "$ texta [26]";
Boolean BLB = STR3.iguales (str4);
Sistema.afuera.println (BLB);

La salida es:

verdadero
FALSO

Las secuencias son las mismas al comparar los literales STR1 y STR2, por lo que el valor de retorno es verdadero. Al comparar Str3 y Str4, las secuencias son las mismas, pero una cadena literal tiene texto minúscula, y el otro tiene texto en mayúsculas, por lo que el valor de retorno es falso.

boolean Equalsignorecase (String S)

Con este método, se ignora la carcasa. Si las secuencias son las mismas, si un literal está en minúsculas y el otro está en mayúscula, este método devolverá verdadero. La salida del siguiente código es:

verdadero
verdadero

Código:

Cadena str1 = "$ texta [26]";
Cadena str2 = "$ texta [26]";
booleano bla = str1.igualsignorecase (str2);
Sistema.afuera.println (bla);
Cadena str3 = "$ texta [26]";
Cadena str4 = "$ texta [26]";
Boolean BLB = STR3.igualsignorecase (str4);
Sistema.afuera.println (BLB);

Problema con == para cuerdas

== compara las referencias de dos objetos de cadena. No se usa para comparar dos literales de cadena.

Menos que, mayor que

Int Compareto (String S)

Este método devuelve un entero negativo, si la cadena izquierda literal es menor que la cadena correcta literal. Devuelve 0 si ambos literales de cadena son iguales. Devuelve un entero mayor que 0 si la cadena izquierda literal es mayor que la cadena recta literal. El siguiente código devuelve, -32 en la computadora del autor:

Cadena str1 = "abcd";
Cadena str2 = "abcd";
int it = str1.Compareto (str2);
Sistema.afuera.println (it);

El siguiente código devuelve -4 en la computadora del autor:

Cadena str1 = "abcd";
Cadena str2 = "efgh";
int it = str1.Compareto (str2);
Sistema.afuera.println (it);

El siguiente código devuelve 0 en la computadora del autor:

Cadena str1 = "abcd";
Cadena str2 = "abcd";
int it = str1.Compareto (str2);
Sistema.afuera.println (it);

El siguiente código devuelve +4 en la computadora del autor:

Cadena str1 = "efg";
Cadena str2 = "abcd";
int it = str1.Compareto (str2);
Sistema.afuera.println (it);

int CompareToignorecase (String S)

Este método es el mismo que comparación (), pero el caso se ignora. El siguiente código devuelve 0 en la computadora del autor:

Cadena str1 = "abcd";
Cadena str2 = "abcd";
int it = str1.Comparetoignorecase (STR2);
Sistema.afuera.println (it);

El siguiente código devuelve 0 en la computadora del autor:

Cadena str1 = "A2C3";
Cadena str2 = "a2c3";
int it = str1.Comparetoignorecase (STR2);
Sistema.afuera.println (it);

Menos que o igual a

Para hacer literales de cadena menos que iguales, se deben combinar dos métodos diferentes en una condición IF, como en la siguiente muestra de código:

Cadena str1 = "abcd";
Cadena str2 = "abcd";
if (str1.CompareToignorEcase (str2) == 0 && str1.Compareto (STR2)<0)
Sistema.afuera.println ("Literal de la izquierda es menor o igual a la derecha literal.");

La salida es:

Literal izquierdo es menor o igual a derecho literal.

Mayor qué o igual a

El siguiente código ilustra la situación para mayor que o igual a:

Cadena str1 = "abcd";
Cadena str2 = "abcd";
if (str1.CompareToignorEcase (str2) == 0 && str1.Compareto (str2)> 0)
Sistema.afuera.println ("Literal de la izquierda es mayor o igual a la derecha literal.");

La salida es:

Literal izquierdo es mayor o igual a derecho literal.

Conclusión

En Java, todos los personajes están representados por enteros. Estos enteros son los números de código para los caracteres. Las letras mayúsculas están representadas por enteros que son más pequeños que los enteros para letras minúsculas. Todos estos números de código existen en una secuencia de más pequeño a más grande. Una comparación de caracteres usa esta secuencia. Comparar literales de cadena también usa esta secuencia de manera similar a cómo se comparan las palabras del diccionario normal. Comparar caracteres utiliza operadores relacionales aritméticos. La comparación de literales de cadena no usa operadores relacionales aritméticos. Utiliza ciertos métodos de cadena Java, que se han explicado anteriormente.

Hay una diferencia entre un objeto de cadena y una cadena literal. El enfoque en este tutorial ha estado en la comparación de literales de cuerdas. Un objeto de cadena es una instancia de la clase de cadena. Una cadena literal es una secuencia de caracteres en quotas dobles. == se puede usar para probar la igualdad de caracteres individuales, pero no la igualdad de los literales de cadena. Con objetos de cadena, == prueba la igualdad de las referencias del objeto de cadena.

Nota: "A" es una cadena, mientras que 'A' es un personaje.

Chrys