Jak łączyć ze sobą ciągi znaków (String) w Java

W poprzednim wpisie poznaliśmy typ String. Wiesz już, że tekst pomiędzy podwójnymi cudzysłowami w Java jest właśnie typu String. Wiesz też jak zdeklarować zmienną tego typu oraz jak wypisać jej zawartość na ekranie… Ale co zrobić żeby dokleić „coś” to istniejącego już ciągu znaków? Lub jak połączyć istniejące ciągi znaków?

Cóż, samo wypisywanie takich samych Stringów nie jest fajne, często właśnie chcemy przekazać jakąś informację do użytkownika aplikacji. Zazwyczaj jest to wynik jakiś obliczeń lub wartość pobrana „skądś”.

Otóż zadanie połączenia kilku Stringów oraz pewnych wartości można zrealizować wykorzystując instrukcje System.out.print oraz System.out.println. Obie te instrukcje wykorzystywaliśmy w poprzednich programach. Pierwsza z nich wypisze na ekranie zadaną wartość (nie dodając nic na końcu), natomiast druga po wypisaniu zadanej wartości wymusi przejście do nowej linii. OK, przejdźmy do prawdziwego przykładu! Załóżmy, że chcesz poinformować użytkownika o wyniku pewnych obliczeń. Wynik ten przechowujesz w zmiennej result. To co chcemy osiągnąć to tekst: Wynik obliczeń wynosi: 4. (zauważ, że po liczbie występuje kropka). W takim wypadku musieli byśmy napisać taki oto kod:

Oczywiście osiągnęliśmy zamierzony cel. Użyliśmy do tego (aż!) trzech instrukcji System.out. żeby efekt końcowy był zgodny z oczekiwanym… może da się coś tutaj zrobić prościej?

Z pomocą przychodzi nam konkatenacja (tj. łączenie) Stringów. Jak coś takiego zrobić? Otóż wystarczy do siebie dodać dwa Stringi:

Ot tyle! Użyliśmy tylko jednego wywołania System.out oraz połączyliśmy nasze ciągi znaków w jeden używając operatora +.

Prawdę mówiąc, to nie wykonaliśmy tutaj dodawania. Tak to się tylko składa, że w Java operatorem konkatenacji (łączenia) Stringów jest plus (+). Typ String jest tutaj wyjątkiem który nie jest liczbą a obsługuje operator +. Użycie operatora + z dowolnym innym nie liczbowym typem spowoduje błędem kompilacji!

No dobrze – pomyślisz – ale w powyższym przykładzie dodajemy int do String, jak to może działać? Otóż maszyna wirtualna Java jest na tyle sprytna, że w przypadku gdy widzi, że pierwszym argumentem operatora plus (tym po jego lewej stronie) jest typ String automatycznie postara się skonwertować drugi parametr również do typu String. Dzięki temu możemy swobodnie łączyć różne typy budując bardziej złożony String.

Ale co kiedy pierwszy typ nie jest String? W przypadku kiedy chcesz wypisać na ekranie coś w stylu: „521 użytkowników zapisało się na to wydarzenie.” (zakładając oczywiście że wartość 521 jest w jakiejś zmiennej), musisz ręcznie skonwertować tą wartość do typu String. Jak to zrobić? Musisz skorzystać z wywołania String.valueOf żeby skonwertować wartość w danej zmiennej do typu String. Poniżej znajdziesz przykład wykorzystania tego wywołania:

lub prościej (pomijając deklarację zmiennej membersStr):

W ten sposób możesz zamienić zmienne typu:

  • boolean
  • char
  • double
  • float
  • int
  • long

W typ String!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *