czwartek, 27 września 2018

Java ciągi znaków


Więcej o Java Strings

Jest więcej ciągów znaków, niż to wygląda na pierwszy rzut oka. W przeciwieństwie do zmiennych int, lub zmiennych double ciągi są obiektami. Co to oznacza w praktyce, że można wykonywać pewne działania na ciągach tekstowych, a których nie można wykonać na zmiennych typu int lub double. (Podobnie jest w przypadku typów danych pierwotnych jak boolean, byte, single, char, float, long i short: nie są to obiekty takie jak string.)
Zanim przejdziemy do manipulowania ciągami tekstowymi, oto kilka podstawowych informacji na temat tego, co to właściwie są łańcuchy.

Jak Java przechowuje dane typu String

Ciąg jest to szereg znaków Unicode, który jest przechowywany pod postacią nazwy zmiennej. Weźmy następujący ciąg:

String jakisTekst = "Bill";

Powyższe wyrażenie w Javie utworzy obiekt String składający się z czterech znaków "B", "i", "l" i kolejnym "l". W zestawie znaków Unicode wartości te są reprezentowane  przez: \u0042, \u0069, \u006c, \u006c. Wartości Unicode są przechowywane jako liczby hexadecimals. Wielkie litery (od A do Z) są przechowywane przy użyciu wartości \u0041 do \u005a, podczas gdy małe litery (od a do z) są zapisywane przy użyciu wartości heksadecymalnych od \u0061 do \u007a.

W poprzedniej sekcji, mieliśmy tablicę, która przechowywała ciąg tekstu. Następnie posortujemy tablicę:

package uazztablice;
 
import java.util.Arrays;
 
public class StringArrays {
    
    public static void main(String[] args){
        
        String[] aryString = new String[5];
        
        aryString[0] = "To";
        aryString[1] = "jest";
        aryString[2] = "moja";
        aryString[3] = "książka";
        aryString[4] = "informatyczna";
        
        Arrays.sort(aryString);
        
        int i;
        for (i = 0; i < aryString.length; i++){
            System.out.println(aryString[i]);
        }
    }
}

Po uruchomieniu programu, dane wyjściowe to:

run:
To
informatyczna
jest
książka
moja
BUILD SUCCESSFUL (total time: 0 seconds)

Możemy zauważyć, że słowo "To" jest wyświetlane jaki pierwsze. Jeśli tablica ma być posortowana alfabetycznie, Jednakże, powinniśmy oczekiwać, że słowo „informatyczna” będzie na pierwszym miejscu. Przyczyną tego, że tak nie jest  jest to, że litera "i" ma wartość w systemie heksadecymalnym  u\0069, czyli dziesiętnie 105. Ale duże "T" ma wartość szesnastkową u\0054, dziesiętnie 84. 84 jest mniejsze niż 97, więc pierwsze jest "T".

OK, popracujmy trochę z ciągami tekstowymi. Metody, które możemy zastosować przy ciągach znaków, są wypisane poniżej:

toUpperCasse
toLowerCase
compareTo
IndexOf
endWith, startsWith
Substring
Equals
charAt
trim
valueOf


Najpierw są te łatwe, konwersja na wielkie i małe litery. Spotkasz je w następnej części.



Brak komentarzy:

Prześlij komentarz