Jakie jest PHP każdy widzi. Plusem jest to, że wystarczy przeczytać kurs na onecie, znać choć trochę HTMLa i JSa i da się coś stworzyć. W Javie… cóż już tak łatwo nie jest. Pomijając zupełnie inne pole zastosowań oraz użyty model języka to problemem, z którym na początku sobie trudno poradzić jest przejście z myślenia prostego, na cokolwiek bardziej ‘porozbijane’.
O co mi konkretnie chodzi? Ano choćby o to, że mamy taką tablicę. W PHP tablica to tablica, ma dynamicznie przydzielany/budowany rozmiar, można zrobić na niej cuda niewidy. W Javie mamy kolekcje, kolejki, stosy, interfejsy implementowane w klasach i potem dziedziczące po tym kolejne klasy. Dużo, skomplikowanie i na pierwszy rzut oka wydaje się, że niepotrzebnie. Oczywiście życie pokazuje, iż wszystko zostało przez ludzi z Suna dobrze przemyślane i należy się nowego nauczyć, a nie wzdychać ze smutkiem.
Podobnie jest z tak fajnie prostą rzeczą jaką są ciągi znaków, czyli popularne stringi. W Javie owszem string istnieje, ale ma jeszcze kilku kolegów. Oto oni:
- String to typ podstawowy. I cechą charakterystyczną tej klasy jest to, iż wszystkie jej metody zwracają nowy obiekt String!!! Czyli nie ma modyfikacji obiektu, na rzecz którego wywołaliśmy którąkolwiek z metod, ale stworzenie nowego.
- StringBuilder to właśnie sposób na to, by poprzez szereg metod (append czy insert) modyfikować swój egzemplarz.
- Istnieje też coś tak fajnego jak StringBuffer, który posiada dokładnie te same metody co StringBuilder, jednakże klasa ta jest przeznaczona dla programowania współbieżnego. Przy każdej operacji dokonuje sprawdzania czy na obiekcie StringBuffer działa tylko jeden wątek.
- na sam koniec zostawiłem StringTokenizer. W PHP jedną z moich ulubionych funkcji jest explode oraz implode. Działanie klasy StringTokenizer jest zasadniczo dość podobne, ale jednakże różni się w działaniu. Jej działanie polega na wyciąganiu z podanego łańcucha poszczególnych jego fragmentów. Świetnie przydaje się to przy wyświetlaniu danych tabelarycznych, czy listowaniu wyniku zapytania na bazie.
To taka lista na szybko. Nie zamierzam wklejać przykładów kodu, gdyż byłoby to kopiowaniem dokumentacji. Pragnąłem tylko pokazać gdzie w Javie należy szukać rozwiązania jakiegokolwiek problemu związanego z łancuchami tekstowymi.