Porównanie strun w Javie

Porównanie strun w Javie
Łatwiej jest zrozumieć porównanie postaci przed nauczeniem się porównania literałów smyczkowych. Porównanie ciągów podano poniżej tego wprowadzenia. Z Javą znaki są reprezentowane w komputerze przez liczby całkowite (liczby całe). Porównanie znaków oznacza porównywanie odpowiednich liczb.

Z Java, wielkimi punktami A do wielkimi Z są liczbami liczbowymi od 65 do 90. A to 65, b wynosi 66, c to 67, aż do z, czyli 90. Małe litery „A” do małej litery „Z” to liczby całkowite od 97 do 122. „A” to 97, „B” to 98, „C” to 99, aż do „Z”, który wynosi 122. Cyfry dziesiętne to liczby całkowite, 48 do 57. To znaczy, „0” to 48, „1” to 49, „2” to 50, do 9, czyli 57.

Tak więc, w tym nowym zamówieniu, cyfry są pierwsze przed wielkimi literami, które są następne przed małymi literami. Przed cyframi jest dzwonek, który jest brzmią. Jego liczba to 7. Istnieje znak zakładki klawiatury, której liczba to 9. Istnieje nowa postać (naciśnięcie klawisza Enter), którego liczba to 10. Istnieje postać kosmiczna (naciskając klucz kosmiczny), którego liczba to 32. Istnieje wykrzyknik, którego liczba to 33. Istnieje postać naprzód, której liczba wynosi 47. „(„ ma liczbę, 40 i ”)„ ma liczbę, 41.

Sekwencja znaków składa się z niektórych znaków niealfanumerycznych, których liczby są poniżej 48; Następnie pojawiają się liczby cyfr dziesiętnych; Niektóre znaki niealfanumeryczne są w następnym odstępie; Następują liczby wielkich liter; Niektóre znaki niealfanumeryczne są w następnym odstępie; Następują liczby małych liter; Następnie istnieją liczby dla innych niealfanumerycznych znaków języka angielskiego.

Te liczby nazywane są numerami kodów. Numer kodu dla $ to 36. Numer kodu dla % to 37. Numer kodu i wynosi 38. Numer kodu dla [to 91. Numer kodu dla backslash \ wynosi 92. Numer kodu dla] wynosi 93. Numer kodu dla to 123. Numer kodu dla | to 124. Numer kodu dla wynosi 125.

Tak więc postacie tworzą nowy rodzaj alfabetu z własnym zamówieniem. Zamawianie jest proste: wystarczy użyć numerów kodów. Oznacza to, że sekwencja jest prosta: po prostu użyj numerów kodów i być w stanie powiązać każdy numer kodu z jego znakiem. Nie zapominaj, że numery dziesiętne cyfrowe pojawiają się przed wielkimi literami, a wielkie litery pojawiają się przed małymi literami.

I tak „A” jest mniej niż „A”, napisane jako „A” < 'a'. '0' is less than 'A', written as, '0' < 'A'. '%' is less than '0', written as, '%' < '0'.

Porównanie znaków w Javie oznacza porównanie ich równoważnych numerów kodów. Porównanie znaków w Javie używa operatorów relacyjnych, które są:

< meaning, less than
> Znaczenie, większe niż
<= meaning, less than or equal to
> = znaczenie, większe lub równe
== Znaczenie, równe
!= Znaczenie, nie równe

Java nie używa tych operatorów do porównywania literałów smyczkowych. Java używa różnych metod porównania ciągów - patrz poniżej. W rzeczywistości == oznacza coś innego do porównania ciągów - patrz poniżej. Odpowiednik powyższych operatorów, dla ciągów, wyjaśniono poniżej.

Z postaciami w Javie jest nowy słownik symboli. Każdy symbol jest reprezentowany wewnętrznie przez liczbę (liczba całkowita). W Javie literał struny nie składa się tylko z alfanumerycznych znaków. W Javie literał smyczkowy jest sekwencją alfanumerycznych znaków zmieszanych z innymi postaciami. Porównanie literałów smyczkowych w Javie musi rozważyć ten nowy słownik symboli (znaków). Porównanie odbywa się w taki sam sposób, jak w przypadku normalnego słownika. Porównując literały smyczkowe w Javie, „$ Texta [25]” < "$textB[26]", but coded differently - see below.

Treść artykułu

  • Wprowadzenie - patrz wyżej
  • Konstruowanie łańcucha
  • Metoda String jest równa
  • Mniej niż, większy niż
  • Mniejszy lub równy
  • Wniosek

Konstruowanie łańcucha

Ciąg można zbudować w języku komputerowym Java, jak w następujących przykładach:

String str = "co? 10 000 $!";
String str = nowy ciąg ("co? 10 000 $!");
char ch [] = „w”, „h”, „a”, „t”, ',', ',', ',', ',', ',', ',', ',', ','?', "," $', '1', '0', ',', '0', '0', '' ',', '!';
String str = nowy String (CH);

Już w tym krótkim dosłownym sznurku cztery niealfanumeryczne znaki ('?',' $ ',', ','!') może być znaleziony. Często zdarza się również znaleźć postacie, „(”, ')', '&', '%', '' i '' w strunach produkowanych przez zwykłych użytkowników komputerów. Porównując literały smyczkowe, zajmują swoje stanowiska w sekwencji liczby „słownika” postaci w oparciu o liczby.

Istnieje różnica między obiektem string. Obiekt ciągu to instancja klasy ciągów. Literał sznurka to tekst, o którym mowa. W powyższych przykładach STR jest obiektem ciągów i „co? 10 000 $!„Bez cytatów jest literał.

Metoda String jest równa

Składnia to:

Boolean równa się (ciąg s)

Zwraca prawdę, jeśli literały sznurkowe są równe, w normalny sposób słownika; i w przeciwnym razie fałsz. To porównanie jest wrażliwe na przypadek. Rozważ następujący kod:

String str1 = "$ texta [26]";
String str2 = "$ texta [26]";
boolean bla = str1.równa się (STR2);
System.na zewnątrz.println (bla);
String str3 = "$ texta [26]";
String str4 = "$ texta [26]";
Boolean Blb = Str3.równa się (STR4);
System.na zewnątrz.println (BLB);

Wyjście to:

PRAWDA
FAŁSZ

Sekwencje są takie same w porównaniu literałów STR1 i STR2, więc wartość zwracania jest prawdziwa. Porównując STR3 i STR4, sekwencje są takie same, ale jeden literał sznurek ma mały tekst, a drugi ma wielki tekst, więc wartość zwracania jest fałszywa.

boolean equalsignorecase (ciąg s)

Za pomocą tej metody obudowa jest ignorowana. Jeśli sekwencje są takie same, jeśli jeden literał jest małymi literami, a drugi jest pod wielkim poziomem, ta metoda powróci. Dane wyjściowe następującego kodu to:

PRAWDA
PRAWDA

Kod:

String str1 = "$ texta [26]";
String str2 = "$ texta [26]";
boolean bla = str1.equalsignorecaza (STR2);
System.na zewnątrz.println (bla);
String str3 = "$ texta [26]";
String str4 = "$ texta [26]";
Boolean Blb = Str3.equalsignorecaza (STR4);
System.na zewnątrz.println (BLB);

Problem z == dla ciągów

== Porównuje odniesienia dwóch obiektów ciągów. Nie jest używany do porównania dwóch literałów sznurkowych.

Mniej niż, większy niż

int Compareto (String S)

Ta metoda zwraca negatywną liczbę całkowitą, jeśli literał lewego sznurka jest mniejszy niż prawy string literał. Zwraca 0, jeśli oba literały ciągów są równe. Zwraca liczbę całkowitą większą niż 0, jeśli literał lewego sznurka jest większy niż prawy sznur literał. Zwraca następujący kod, -32 na komputerze autora:

String str1 = "abcd";
String str2 = "abcd";
int it = str1.Compareto (STR2);
System.na zewnątrz.println (it);

Poniższy kod zwraca -4 w komputerze autora:

String str1 = "abcd";
String str2 = "efgh";
int it = str1.Compareto (STR2);
System.na zewnątrz.println (it);

Poniższy kod zwraca 0 na komputerze autora:

String str1 = "abcd";
String str2 = "abcd";
int it = str1.Compareto (STR2);
System.na zewnątrz.println (it);

Poniższy kod zwraca +4 na komputerze autora:

String str1 = "efg";
String str2 = "abcd";
int it = str1.Compareto (STR2);
System.na zewnątrz.println (it);

int ComparetoignoCase (ciąg s)

Ta metoda jest taka sama jak Compareto (), ale przypadek jest ignorowany. Poniższy kod zwraca 0 na komputerze autora:

String str1 = "abcd";
String str2 = "abcd";
int it = str1.CompompetOignoCase (STR2);
System.na zewnątrz.println (it);

Poniższy kod zwraca 0 na komputerze autora:

String str1 = "a2c3";
String str2 = "a2c3";
int it = str1.CompompetOignoCase (STR2);
System.na zewnątrz.println (it);

Mniejszy lub równy

Aby zrobić mniej niż niż równe dla literałów ciągów, dwie różne metody należy łączyć w krainie IF, jak w następującej próbce kodu:

String str1 = "abcd";
String str2 = "abcd";
if (str1.CompareToignoCase (STR2) == 0 && STR1.Compareto (STR2)<0)
System.na zewnątrz.println („lewy literał jest mniejszy lub równy prawej literatu.");

Wyjście to:

Lewy literał jest mniejszy lub równy prawej literatu.

Większe bądź równe

Poniższy kod ilustruje sytuację dla większego niż równego do:

String str1 = "abcd";
String str2 = "abcd";
if (str1.CompareToignoCase (STR2) == 0 && STR1.Compareto (STR2)> 0)
System.na zewnątrz.println („lewy literał jest większy lub równy prawej literatu.");

Wyjście to:

Lewy literał jest większy lub równy prawej literatu.

Wniosek

W Javie wszystkie znaki są reprezentowane przez liczby całkowite. Te liczby całkowite to numery kodów dla znaków. Wielkie litery są reprezentowane przez liczby całkowite, które są mniejsze niż liczby całkowite dla małych liter. Wszystkie te liczby kodów istnieją w sekwencji od najmniejszej do największej. Porównanie znaków używa tej sekwencji. Porównanie literałów smyczkowych używa również tej sekwencji podobnie jak porównywanie słów normalnego słownika. Porównanie znaków używa arytmetycznych operatorów relacyjnych. Porównanie literałów smyczkowych nie używa arytmetycznych operatorów relacyjnych. Używa niektórych metod ciągów Java, które zostały wyjaśnione powyżej.

Istnieje różnica między obiektem string. W tym samouczku skupiono się na porównaniu literałów smyczkowych. Obiekt ciąg. Literał sznurka to sekwencja znaków w podwójnych cytatach. == można użyć do przetestowania równości pojedynczych znaków, ale nie równości literałów smyczkowych. Z obiektami ciągów == testuje równość odniesień do obiektów ciągu.

Uwaga: „A” jest ciągiem, podczas gdy „A” jest postacią.

Chrys