29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
1/12
Klasy String – metody z
przykładami | split,
length, replace,
contains, indexOf,
substring
Metody klasy String to fragment artykułu na temat klasy
. W tym tekście zostaną omówione najważniejsze
metody klasy String wraz z przykładami użycia.
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
2/12
Spis treści
[
ukryj
]
1 String trim
2 String toUpperCase
3 String toLowerCase
4 String isEmpty
5 String length
6 String charAt
7 String toCharArray
8 String substring
9 String subSequence
10 String split
11 String replace
12 String matches
13 String indexOf
14 String equals
15 String concat
16 String startsWith
17 String endsWith
18 String contains
19 String compareTo
20 String getBytes
21 Programista – Pytania rekrutacyjne
String trim
public String trim()
Zadaniem metody trim jest pozbycie się wszystkich
białych znaków na początku i końcu stringa.
String toUpperCase
public String
toUpperCase(Locale
locale)
public String
toUpperCase()
1
2
3
String
str
=
" Java "
;
String
actualValue
=
str
.
trim
();
String
expectedValue
=
"Java"
;
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
3/12
Metoda toUpperCase zamienia wszystkie znaki w stringu
na wielkie litery. Jako opcjonalny argument przyjmuje
ustawienia regionalne. W przypadku jego braku
metoda przyjmie domyślną wartość:
Locale.getDefault().
String toLowerCase
public String
toLowerCase(Locale
locale)
public String
toLowerCase()
Metoda toLowerCase zamienia wszystkie znaki w stringu
na małe litery. Jako opcjonalny argument przyjmuje
ustawienia regionalne. W przypadku jego braku
metoda przyjmie domyślną wartość:
Locale.getDefault().
String isEmpty
public boolean
isEmpty()
Metoda isEmpty zwraca prawdę, jeżeli string jest pusty,
czyli jeżeli jego długość równa się 0.
String length
1
2
3
String
str
=
"Java"
;
String
actualValue
=
str
.
toUpperCase
();
String
expectedValue
=
"JAVA"
;
1
2
3
String
str
=
"Java"
;
String
actualValue
=
str
.
toLowerCase
();
String
expectedValue
=
"java"
;
1
2
3
4
5
String
strNotEmpty
=
"Java"
;
String
strEmpty
=
""
;
assertFalse
(
strNotEmpty
.
isEmpty
());
assertTrue
(
strEmpty
.
isEmpty
());
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
4/12
Metoda length zwraca długość ciągu znaków.
String charAt
public char charAt(int
index)
Metoda charAt zwraca znak znajdujący się pod
wskazanym indeksem. W przypadku przekroczenia
zakresu indeksu wyrzuci
wyjątek:
StringIndexOutOfBoundsException.
String toCharArray
public char[]
toCharArray()
Metoda toCharArray zwraca tablicę wszystkich znaków
składającą się na ciąg znaków.
String substring
public String
substring(int
beginIndex, int
endIndex)
1
2
3
String
str
=
"Java"
;
int
actualValue
=
str
.
length
();
int
expectedValue
=
4
;
1
2
3
String
str
=
"Java"
;
char
actualValue
=
str
.
charAt
(
1
);
char
expectedValue
=
'a'
;
1
2
3
4
String
str
=
"Java"
;
char
[]
actualValue
=
str
.
toCharArray
();
char
[]
expectedValue
=
{
'J'
,
'a'
,
'v'
,
'a'
};
assertArrayEquals
(
expectedValue
,
actualValue
);
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
5/12
public String
substring(int
beginIndex)
Metoda substring zwraca wybrany fragment ciągu znaków
o podanym zakresie indeksów.
String subSequence
public CharSequence
subSequence(int
beginIndex, int
endIndex)
Metoda subSequence działa analogicznie do
substring,
jedyną różnicą jest to, że zwraca bardziej ogólny
interfejs:
CharSequence.
String split
public String[]
split(String regex, int
limit)
public String[]
split(String regex)
Metoda split na podstawie wyrażenia regularnego rozbija
ciąg znaków na fragmenty. Opcjonalny argument:
limit
ogranicza długość wynikowej tablicy. Po jego
przekroczeniu reszta nierozbitego na fragmenty tekstu
zostanie zwrócona jako ostatni jej element.
Poniżej przykłady wraz z opisem.
1
2
3
String
str
=
"Java"
;
String
actualValue
=
str
.
substring
(
1
,
3
);
String
expectedValue
=
"av"
;
1
2
3
String
str
=
"Java"
;
CharSequence
actualValue
=
str
.
subSequence
(
1
,
3
);
CharSequence
expectedValue
=
"av"
;
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
6/12
1. Split dzieli ciąg znaków na fragmenty oddzielone
spacją.
2. Jeżeli po podziale tekstu na fragmenty zostaną na
końcu puste stringi, nie zostaną one uwzględnione w
wynikowej tablicy.
3. Metoda split obsługuje również wyrażenia regularne.
4. Jeżeli metoda split jako argument przyjmie pusty
string, w wynikowej tablicy będzie ciąg znaków
podzielony na pojedyncze znaki (stringi o długości 1).
Dodatkowo w przykładzie wykorzystano argument
limit, po którego przekroczeniu ciąg znaków
przestaje być rozbijany na kolejne fragmenty.
String replace
public String
replace(CharSequence
target, CharSequence
replacement)
public String
replace(char oldChar,
char newChar)
public String
replaceAll(String regex,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 1
String
String
[]
actualValue
=
str
.
split
(
" "
);
String
[]
expectedValue
=
{
"Java"
,
"8"
};
assertArrayEquals
(
expectedValue
,
actualValue
);
// 2
str
=
" Ja va 8 "
;
actualValue
=
str
.
split
(
" "
);
expectedValue
=
new
String
[]{
""
,
"Ja"
,
""
,
"va"
,
assertArrayEquals
(
expectedValue
,
actualValue
);
// 3
str
=
"Ja1va 8"
;
actualValue
=
str
.
split
(
"[0-9]"
);
expectedValue
=
new
String
[]{
"Ja"
,
"va "
};
assertArrayEquals
(
expectedValue
,
actualValue
);
// 4
str
=
"Java 8"
;
actualValue
=
str
.
split
(
""
,
4
);
expectedValue
=
new
String
[]{
"J"
,
"a"
,
"v"
,
"a 8
assertArrayEquals
(
expectedValue
,
actualValue
);
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
7/12
String replacement)
public String
replaceFirst(String
regex, String
replacement)
Metoda replace służy do zamiany jednego fragmentu
tekstu na drugi. Istnieje kilka różnych możliwości
podmiany tekstu jak zamiana tylko pierwszego
wystąpienia, wszystkich wystąpień lub wykorzystanie
wyrażeń regularnych.
Poniżej przykłady wraz z opisem.
1. Najprostsze wywołanie demonstrujące zamianę
wszystkich wystąpień litery: ‘a’ na ‘A’.
2. Podmiana pasujących stringów robiona jest od lewej
do prawej strony. Dlatego, jeżeli jeden fragment
tekstu zostanie już podmieniony, to nie będzie
wykorzystany po raz kolejny.
3. Zamiana tylko pierwszego pasującego wystąpienia
4. Zamiana wszystkich pasujących wystąpień.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 1
String
str
=
"Java 8"
;
String
actualValue
=
str
.
replace
(
"a"
,
"A"
);
String
expectedValue
=
"JAvA 8"
;
assertEquals
(
expectedValue
,
actualValue
);
// 2
str
=
"aaa"
;
actualValue
=
str
.
replace
(
"aa"
,
"AA"
);
expectedValue
=
"AAa"
;
assertEquals
(
expectedValue
,
actualValue
);
// 3
str
=
"aaa"
;
actualValue
=
str
.
replaceFirst
(
"a"
,
"A"
);
expectedValue
=
"Aaa"
;
assertEquals
(
expectedValue
,
actualValue
);
// 4
str
=
"aaa"
;
actualValue
=
str
.
replaceAll
(
"aa"
,
"AA"
);
expectedValue
=
"AAa"
;
assertEquals
(
expectedValue
,
actualValue
);
// 5
str
=
"Ja1va 8"
;
actualValue
=
str
.
replaceAll
(
"[0-9]"
,
"x"
);
expectedValue
=
"Jaxva x"
;
assertEquals
(
expectedValue
,
actualValue
);
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
8/12
5. Metoda
replaceAll może przyjmować również
wyrażenia regularne.
String matches
public boolean
matches(String regex)
Metoda matches na podstawie wyrażenia regularnego
stwierdza czy string pasuje do wzorca.
String indexOf
public int
indexOf(String str, int
fromIndex)
public int indexOf(int
ch)
public int
indexOf(String str)
public int
lastIndexOf(int ch, int
fromIndex)
public int
lastIndexOf(int ch)
Metoda indexOf wyszukuje podanego ciągu znaków i
zwraca indeks pierwszego znalezionego wystąpienia.
Opcjonalnie można podać indeks, od którego ma
rozpocząć się przeszukiwanie lub skorzystać z
metody:
lastIndexOf w celu znalezienia ostatniego
wystąpienia.
1
2
3
4
5
String
str
=
"Java 8"
;
assertTrue
(
str
.
matches
(
"Java 8"
));
assertTrue
(
str
.
matches
(
"Java [0-8]"
));
assertTrue
(
str
.
matches
(
"J(.*)"
));
assertTrue
(
str
.
matches
(
"J(.?)v[a-z] (.*)"
));
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
9/12
String equals
public boolean
equals(Object
anObject)
public boolean
equalsIgnoreCase(String
anotherString)
Metoda equals wykorzystywana jest do porównywania ze
sobą stringów po wartości. Ponieważ stringi są obiektami
operator == nawet dla takich samych ciągów znaków może
zwrócić false. Istnieje również metoda equalsIgnoreCase
wykorzystywana do porównywania stringów, która
ignoruje wielkość znaków.
String concat
public String
concat(String str)
Dzięki metodzie concat można łączyć ze sobą stringi.
Podobny efekt można osiągnąć przez operator +. Więcej
na temat samej konkatenacji stringów oraz kłopotów z
wydajnością można przeczytać w artykule o
1
2
3
4
5
6
7
8
9
10
String
str
=
"Java 8"
;
int
actualValue
=
str
.
indexOf
(
"a"
);
int
expectedValue
=
1
;
assertEquals
(
expectedValue
,
actualValue
);
str
=
"Java 8"
;
actualValue
=
str
.
lastIndexOf
(
"a"
);
expectedValue
=
3
;
assertEquals
(
expectedValue
,
actualValue
);
1
2
3
4
String
str
=
"Java 8"
;
assertTrue
(
str
.
equals
(
"Java 8"
));
assertTrue
(
str
.
equalsIgnoreCase
(
"JAVA 8"
));
1
2
3
4
5
String
str
=
"Java"
;
String
actualValue
=
str
.
concat
(
" "
).
concat
(
"8"
);
String
expectedValue
=
"Java 8"
;
assertEquals
(
expectedValue
,
actualValue
);
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
10/12
String startsWith
public boolean
startsWith(String
pre x, int to set)
public boolean
startsWith(String
pre x)
Metoda startWith sprawdza, czy string zaczyna się od
wskazanego ciągu znaków. Opcjonalnie można podać
indeks, od którego ma rozpocząć przeszukiwanie.
String endsWith
public boolean
endsWith(String su x)
Metoda endsWith sprawdza, czy string kończy się od
wskazanego ciągu znaków.
String contains
public boolean
contains(CharSequence
s)
6
7
8
9
str
=
"Java"
;
expectedValue
=
"Java 8"
;
assertEquals
(
expectedValue
,
actualValue
);
1
2
3
4
String
str
=
"Java 8"
;
assertTrue
(
str
.
startsWith
(
"Ja"
));
assertTrue
(
str
.
startsWith
(
"ava"
,
1
));
1
2
String
str
=
"Java 8"
;
assertTrue
(
str
.
endsWith
(
"8"
));
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
11/12
Metoda contains sprawdza, czy string zawiera dany ciąg
znaków.
String compareTo
public int
compareTo(String
anotherString)
Dzięki compareTo można porównać stringi według
porządku leksykogra cznego. Jeżeli oba stringi są sobie
równe według metody
equals, to metoda compareTo
zwróci 0, jeżeli pierwszy ciąg znaków jest większy, to wynik
będzie mniejszy od 0, w przeciwnym wypadku wynik
będzie większy od 0. Istnieje również
metoda compareToIgnoreCase, która dodatkowo przy
porównywaniu ignoruje wielkość znaków.
String getBytes
public byte[] getBytes()
Metoda getBytes zamienia stringa na tablicę bajtów.
1
2
String
str
=
"Java 8"
;
assertTrue
(
str
.
contains
(
"8"
));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 1
String
str1
=
"aaa"
;
String
str2
=
"bbb"
;
int
actualValue
=
str1
.
compareTo
(
str2
);
assertTrue
(
actualValue
<
0
);
// 2
str1
=
"aaa"
;
str2
=
"bbb"
;
actualValue
=
str2
.
compareTo
(
str1
);
assertTrue
(
actualValue
>
0
);
// 3
str1
=
"aaa"
;
str2
=
"aaa"
;
actualValue
=
str2
.
compareTo
(
str1
);
assertEquals
(
0
,
actualValue
);
// 4
str1
=
"AAA"
;
str2
=
"aaa"
;
actualValue
=
str2
.
compareToIgnoreCase
(
str1
);
assertEquals
(
0
,
actualValue
);
29.04.2018
Klasy String - metody z przykładami | split, length, replace, contains, indexOf, substring - StormIT.pl
https://stormit.pl/string-metody/
12/12
Programista – Pytania
rekrutacyjne
Lista pytań rekrutacyjnych, które pozwolą
przygotować Ci się na rozmowę kwali kacyjną.
,
S H A R E :
1
2
3
4
5
String
str
=
"Java"
;
byte
[]
byte
[]
expectedValue
=
{
'J'
,
'a'
,
'v'
,
'a'
};
assertArrayEquals
(
expectedValue
,
actualValue
);