W tym samouczku nauczymy się pracować z ciągami znaków w Javie. Ciągi znaków, które są tak powszechnie stosowane w programowaniu, to ciąg znaków. W języku programowania Java ciągi znaków są obiektem. Platforma Java udostępnia klasę
String
do tworzenia ciągów znaków i manipulowania nimi.
Tworzenie ciągów
Najprostszy sposób utworzenia ciągu wygląda następująco:String greeting = "Hello world!";
W tym przypadku „Hello World!” jest literałem łańcuchowym (czyli stałą) składającym się z ciągu znaków ujętych w cudzysłów. Ilekroć kompilator napotyka literał łańcuchowy, tworzy obiekt typu String
z wartością, w naszym przypadku „Hello World!”. Jak każdy inny obiekt, ciąg znaków można utworzyć za pomocą słowa kluczowego new
. Klasa String
ma trzy konstruktory, które umożliwiają utworzenie obiektu przy użyciu różnych źródeł, takich jak tablica znaków .
char[] helloArray = {'h', 'e', 'l', 'l', 'o', '.'};
String helloString = new String(helloArray);
System.out.println(helloString);
Ostatnia linia przykładu wyświetli powitanie na ekranie . Klasa String
jest niezmienna, więc kiedy utworzymy obiekt, nie możemy go zmienić. Niektóre metody, które omówimy poniżej, mogą to naprawić. Ponieważ String
immutable, metody te tworzą i zwracają nowy ciąg zawierający wynik operacji.
Długość ciągu Java
Metody uzyskiwania informacji o ciągu nazywane są metodami dostępu. Jedna z tych metodlength()
. Zwraca liczbę znaków w ciągu. W poniższym przykładzie len
będzie to 17:
String palindrome = "Dont saw I saw Tod";
int len = palindrome.length();
Zmienna palindrome
zawiera palindrom, tj. słowo lub zdanie, które brzmi tak samo w obie strony. Napiszmy mały program, który odwróci palindrom. Skorzystamy z metody charAt(i)
, która zwraca i -ty znak ciągu znaków, zaczynając od 0
.
public class StringDemo {
public static void main(String[] args) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
char[] tempCharArray = new char[len];
char[] charArray = new char[len];
//создадим из строки
// массив символов
for (int i = 0; i < len; i++) {
tempCharArray[i] =
palindrome.charAt(i);
}
// перевернем массив символов
for (int j = 0; j < len; j++) {
charArray[j] =
tempCharArray[len - 1 - j];
}
String reversePalindrome =
new String(charArray);
System.out.println(reversePalindrome);
}
}
Program wydrukuje
doT saw I was toD
Aby odwrócić ciąg znaków, najpierw utworzyliśmy tablicę znaków z ciągu (pierwsza pętla), następnie utworzyliśmy nową tablicę, do której zapisaliśmy odwróconą pierwszą tablicę, a następnie utworzyliśmy nowy ciąg. Klasa String
zawiera metodę getChars()
zwracającą tablicę znaków, dlatego pierwszą pętlę można zastąpić linią:
palindrome.getChars(0, len, tempCharArray, 0);
Łączenie ciągów
KlasaString
implementuje metodę łączenia dwóch ciągów znaków:
string1.concat(string2);
Ten kod zwróci nowy ciąg zawierający string1
i dołączony do niego string2
. Możesz także użyć tej metody z literałami łańcuchowymi:
"My name is ".concat("Rumplestiltskin");
Najczęściej ciągi łączone są za pomocą +
operatora „ ”, przykład:
"Hello," + " world" + "!"
Wynikiem będzie ciąg „ Witaj, świecie!” " Operator „ +
” jest szeroko stosowany do wyświetlania informacji, na przykład:
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
Kod wyświetli „ Dot saw I was Tod ”. Takiej konkatenacji można używać w połączeniu z dowolnymi innymi obiektami. W przypadku obiektów niebędących ciągami znaków zostanie wywołana metoda toString()
, która konwertuje je na ciągi znaków. Ustawianie formatu wyjściowego ciągu znaków Przyjrzeliśmy się już metodom printf()
formatowania format()
wyniku liczbowego. Klasa String
ma podobną metodę, która zwraca ciąg znaków. Stosując metodę statyczną format()
możliwe jest utworzenie szablonu stockowego, który można ponownie wykorzystać, na przykład:
System.out.printf ("The value of the float " +
"variable is %f, while " +
"the value of the " +
"integer variable is %d, "
"and the string is %s",
floatVar, intVar, stringVar);
możesz użyć tego kodu:
String fs;
fs = String.format("The value of the float " +
"variable is %f, while " +
"the value of the " +
"integer variable is %d, " +
" and the string is %s",
froatVar, intVar, stringVar);
System.out.println(fs);
To wszystko! :) Link do źródła: Stringi w Javie
GO TO FULL VERSION