4.1. Робота з рядками

В java об'єкти класу String не можна змінювати. На перший погляд — це додає проблем при роботі, але насправді це не так. Не можна змінювати сам рядок в пам'яті комп'ютера, але змінній, яка посилається на певний рядок, можна призначити інший рядок.

1
2
3
4
5
String str="Це"; 
String str2="рядок"; 
String str3="555"; 
str=str3; //так можна 
str=str+" "+str2; //і так можна

Дію обмеження ви відчуєте, лише коли захочете, наприклад, замінити букву "е" на якусь іншу, або змінити її регістр. В інших мовах - це можна зробити без проблем. В java потрібно утворити новий рядок. Скопіювавши, наприклад, букву "Ц" і додавши до неї "Е". Рядок, на який вже не посилається жодна змінна, буде видалений з пам'яті комп'ютера автоматичним прибиральником сміття java.

В разі, якщо ж все ж таки необхідна маніпуляція з рядком напряму, то для таких цілей існують споріднені із String класи. Зокрема, StringBuffer — корисний, при роботі з великими об'ємами текстових даних, читання з файлу і т.п.

Щоб здійснити такі дії як пошук, заміна і т.п. в класі String існує чималий набір методів. Так, щоб дізнатися довжину рядка можна скористатися методом length():

1
2
3
String str="Це рядок"; 
int strLength=str.length(); 
int str2Length="Це рядок".length(); //можна і так