Confrontare le stringhe in Java

Confrontare le stringhe in Java
È più facile comprendere il confronto dei personaggi prima di apprendere il confronto dei letterali delle stringhe. Un confronto delle stringhe è riportato di seguito questa introduzione. Con Java, i personaggi sono rappresentati nel computer da numeri interi (numeri interi). Confrontare i caratteri significa confrontare i loro numeri corrispondenti.

Con Java, la maiuscola da A al maiuscolo Z sono i numeri interi da 65 a 90. A è 65, B è 66, C è 67, fino a z, che è 90. Il minuscolo "A" a minuscolo "z sono i numeri interi da 97 a 122. 'A' è 97, 'b' è 98, 'c' è 99, fino a 'z,' che è 122. Le cifre decimali sono i numeri interi, da 48 a 57. Cioè, '0' è 48, '1' è 49, '2' è 50, fino al 9, che è 57.

Quindi, in questo nuovo ordine, le cifre vengono prima prima delle lettere maiuscole, che vengono successive prima delle lettere minuscole. Prima delle cifre, c'è il campanello, che è un personaggio del suono e non. Il suo numero è 7. C'è il carattere della scheda della tastiera, il cui numero è 9. C'è il carattere newline (premendo il tasto ENTER), il cui numero è 10. C'è il carattere spaziale (premendo il tasto della barra spaziale), il cui numero è 32. C'è il carattere esclamativo, il cui numero è 33. C'è il personaggio in avanti-slash, il cui numero è 47. '(' ha il numero, 40 e ')' ha il numero, 41.

La sequenza per i personaggi è composta da alcuni caratteri non alfanumerici, i cui numeri sono inferiori a 48; I numeri per le cifre decimali arrivano dopo; Alcuni personaggi non alfanumerici sono nel prossimo intervallo; Seguono numeri per lettere maiuscole; Alcuni personaggi non alfanumerici sono nel prossimo intervallo; Seguono i numeri per le lettere minuscole; Dopo questo, ci sono numeri per altri personaggi non alfanumerici della lingua inglese.

Questi numeri sono chiamati numeri di codice. Il numero di codice per $ è 36. Il numero di codice per % è 37. Il numero di codice per & è 38. Il numero di codice per [è 91. Il numero di codice per la backslash \ è 92. Il numero di codice per] è 93. Il numero di codice per è 123. Il numero di codice per | è 124. Il numero di codice per è 125.

Quindi, i personaggi formano un nuovo tipo di alfabeto con il suo ordinamento. L'ordinamento è semplice: basta utilizzare i numeri di codice. Cioè, la sequenza è semplice: basta utilizzare i numeri di codice ed essere in grado di associare ogni numero di codice al suo carattere. Non dimenticare che i numeri di codice delle cifre decimali vengono prima delle lettere maiuscole e le lettere maiuscole vengono prima delle lettere minuscole.

E così, "a" è meno di "a", scritto come "a" < 'a'. '0' is less than 'A', written as, '0' < 'A'. '%' is less than '0', written as, '%' < '0'.

Confrontare i caratteri in Java significa confrontare i loro numeri di codice equivalenti. Il confronto dei personaggi in Java utilizza operatori relazionali, che sono:

< meaning, less than
> significato, maggiore di
<= meaning, less than or equal to
> = significato, maggiore o uguale a
== significato, uguale a
!= significato, non uguale a

Java non usa questi operatori per confrontare i letterali delle stringhe. Java utilizza metodi diversi per il confronto delle stringhe - vedi sotto. In effetti, == significa qualcos'altro per il confronto delle stringhe - vedi sotto. L'equivalente degli operatori di cui sopra, per le stringhe, è spiegato di seguito.

Con i personaggi di Java, c'è un nuovo dizionario di simboli. Ogni simbolo è rappresentato internamente da un numero (intero). In Java, una stringa letterale non è composta solo da personaggi alfanumerici. In Java, una stringa letterale è una sequenza di caratteri alfanumerici mescolati con altri personaggi. Il confronto dei letterali di stringa in Java deve considerare questo nuovo dizionario di simboli (personaggi). Il confronto viene eseguito allo stesso modo del dizionario normale. Nel confrontare i letterali delle stringhe in Java, "$ texta [25]" < "$textB[26]", but coded differently - see below.

Contenuto dell'articolo

  • Introduzione - Vedi sopra
  • Costruire una stringa
  • La stringa è uguale al metodo
  • Meno di, maggiore di
  • Minore o uguale a
  • Conclusione

Costruire una stringa

Una stringa può essere costruita nel linguaggio del computer Java, come nei seguenti esempi:

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

Già in questo corto stringa letterale, quattro personaggi non alfanumerici ("?',' $ ',' ','!') possono essere trovati. Non è raro trovare anche i personaggi, '(', ')', '&', '%', '' e '' nelle stringhe prodotte da utenti di computer ordinari. Nel confrontare i letterali delle stringhe, prendono le loro posizioni nella sequenza di numeri del personaggio "Dizionario", in base ai numeri.

C'è una differenza tra un oggetto stringa e una stringa letterale. Un oggetto stringa è l'istanziazione della classe stringa. Una stringa letterale è un testo in questione. Negli esempi sopra, STR è un oggetto stringa e "cosa? $ 10.000!"Senza le citazioni è un letterale della stringa.

La stringa è uguale al metodo

La sintassi è:

Booleano uguali (String S)

Restituisce vero se i letterali di stringa sono uguali, in modo normale dizionario; e falso altrimenti. Questo confronto è sensibile al caso. Considera il seguente codice:

String Str1 = "$ texta [26]";
String Str2 = "$ texta [26]";
booleano bla = str1.uguali (STR2);
Sistema.fuori.println (bla);
String Str3 = "$ texta [26]";
String str4 = "$ texta [26]";
booleano BLB = STR3.uguali (STR4);
Sistema.fuori.println (BLB);

L'output è:

VERO
falso

Le sequenze sono le stesse confrontando i letterali STR1 e STR2, quindi il valore di ritorno è vero. Nel confrontare STR3 e STR4, le sequenze sono uguali, ma una stringa letterale ha un testo minuscolo e l'altra ha un testo maiuscolo, quindi il valore di ritorno è falso.

booleano equalsignorecase (String S)

Con questo metodo, l'involucro viene ignorato. Se le sequenze sono le stesse, se una letterale è in minuscolo e l'altro è in maiuscolo, questo metodo restituirà vero. L'output del seguente codice è:

VERO
VERO

Codice:

String Str1 = "$ texta [26]";
String Str2 = "$ texta [26]";
booleano bla = str1.equalsignorecase (STR2);
Sistema.fuori.println (bla);
String Str3 = "$ texta [26]";
String str4 = "$ texta [26]";
booleano BLB = STR3.equalsignorecase (STR4);
Sistema.fuori.println (BLB);

Problema con == per le stringhe

== confronta i riferimenti di due oggetti stringa. Non è usato per confrontare i letterali a due stringhe.

Meno di, maggiore di

int comparazione (String S)

Questo metodo restituisce un numero intero negativo, se la stringa sinistra letterale è inferiore alla stringa destra letterale. Restituisce 0 se entrambi i letterali di stringa sono uguali. Restituisce un intero maggiore di 0 se la stringa sinistra letterale è maggiore della stringa destra letterale. Il seguente codice restituisce, -32 nel computer dell'autore:

String Str1 = "ABCD";
String Str2 = "ABCD";
int it = str1.confronto (STR2);
Sistema.fuori.println (it);

Il seguente codice restituisce -4 nel computer dell'autore:

String Str1 = "ABCD";
String str2 = "efgh";
int it = str1.confronto (STR2);
Sistema.fuori.println (it);

Il seguente codice restituisce 0 nel computer dell'autore:

String Str1 = "ABCD";
String Str2 = "ABCD";
int it = str1.confronto (STR2);
Sistema.fuori.println (it);

Il seguente codice restituisce +4 nel computer dell'autore:

String str1 = "efg";
String Str2 = "ABCD";
int it = str1.confronto (STR2);
Sistema.fuori.println (it);

int comparatorecase (String S)

Questo metodo è uguale a confronto (), ma il caso viene ignorato. Il seguente codice restituisce 0 nel computer dell'autore:

String Str1 = "ABCD";
String Str2 = "ABCD";
int it = str1.comparatorecase (STR2);
Sistema.fuori.println (it);

Il seguente codice restituisce 0 nel computer dell'autore:

String Str1 = "A2C3";
String Str2 = "A2C3";
int it = str1.comparatorecase (STR2);
Sistema.fuori.println (it);

Minore o uguale a

Per fare poco o uguale per i letterali delle stringhe, due diversi metodi devono essere combinati in una condizione if, come nel seguente campione di codice:

String Str1 = "ABCD";
String Str2 = "ABCD";
if (str1.comparatorecase (str2) == 0 && str1.Compateto (STR2)<0)
Sistema.fuori.println ("Letterale sinistro è inferiore o uguale a destra letterale.");

L'output è:

Letterale sinistro è inferiore o uguale a destra letterale.

Maggiore o uguale a

Il seguente codice illustra la situazione per una maggiore che oqual-to:

String Str1 = "ABCD";
String Str2 = "ABCD";
if (str1.comparatorecase (str2) == 0 && str1.Compateto (STR2)> 0)
Sistema.fuori.println ("Letterale sinistro è maggiore o uguale a destra letterale.");

L'output è:

Letterale sinistro è maggiore o uguale a destra letterale.

Conclusione

In Java, tutti i personaggi sono rappresentati dai numeri interi. Questi numeri interi sono i numeri di codice per i caratteri. Le lettere maiuscole sono rappresentate da numeri interi più piccoli dei numeri interi per le lettere minuscole. Tutti questi numeri di codice esistono in una sequenza dal più piccolo al più grande. Un confronto di personaggi usa questa sequenza. Il confronto dei letterali delle stringhe utilizza anche questa sequenza in modo simile a come vengono confrontate le parole del dizionario normale. Il confronto dei personaggi utilizza operatori relazionali aritmetici. Il confronto tra i letterali delle stringhe non utilizzano operatori relazionali aritmetici. Utilizza alcuni metodi di stringa Java, che sono stati spiegati sopra.

C'è una differenza tra un oggetto stringa e una stringa letterale. L'attenzione in questo tutorial è stata sul confronto dei letterali delle stringhe. Un oggetto stringa è un'istanza della classe stringa. Una stringa letterale è una sequenza di caratteri in doppia citazione. == può essere usato per testare l'uguaglianza di singoli caratteri, ma non l'uguaglianza dei letterali delle stringhe. Con oggetti stringa, == teste l'uguaglianza dei riferimenti agli oggetti stringa.

Nota: "A" è una stringa, mentre "A" è un personaggio.

Chrys