„Здрасти, Амиго!“
— Но, Билаабо, ти вече ме поздрави.
„Наистина ли? Е, все още обичам да започвам всеки урок с тази фраза.“
„Днес ще изучаваме задълбочено класа String.“
„Но аз вече знам всичко за него. Дори знам, че класът String е неизменен.“
„Класът String има 46 метода. Колко от тях познавате?“
„Не повече от десет. Всъщност вероятно около 5 максимум.“
— Тогава слушайте.
„Създателите на Java забелязаха, че повечето низове в програмите не са предназначени да бъдат модифицирани, но понякога те все пак се модифицират. Много е досадно, когато създадете низ, запазите нещо важно в него, прехвърлите го на метод на някой друг и той се промени . За да не се случи това, те решиха да създадат Howто променливи, така и неизменни низове."
"Класът String е за неизменни низове, а класът StringBuilder е за променливи. Обектите от тези класове лесно се конвертират в другия тип. В повечето случаи разработчиците на Java просто се нуждаят от String, което доказва, че създателите на Java са бor прави."
„Така че, ако имам нужда от String, използвам класа String. И ако имам нужда от променлив низ, тогава използвам класа StringBuilder ?“
"Да. Всъщност има друг клас, наречен StringBuffer. Това е копие на StringBuilder, с изключение на това, че всички негови методи са декларирани като синхронизирани , така че обектът да може да бъде достъпен от различни нишки на програмата."
"А Howво ще кажете за този пример? Низът не се ли променя тук?"
String s = "cat";
s = s + "-" + s;
"Не. Тук има два String обекта: «cat» и «cat-cat». Вторият се създава с помощта на първия, но първият обект не се променя. В действителност нещата тук са много по-интересни. Ето codeа компилаторът генерира, когато компorра вашия пример:"
String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();
„И така, StringBuilder почти винаги се използва за създаване на нови низове, но понякога компилаторът просто върши цялата работа instead of вас. Но вашата version е по-проста, не мислите ли?“
„Да, страхотно е, че Java има толкова усъвършенстван компилатор.“
„Е, сега нека преминем през методите на класа String:“
1) Как да намеря дължината на низ?
„ Методът за дължина връща дължината на низ (броя знаци в него).“
Метод(и) | Примери) |
---|---|
|
|
|
2) Как да получа знак от низ?
„ Методът charAt връща символ от низ по неговия индекс. Индексите на знаците започват от 0.
Метод(и) | Примери) |
---|---|
|
|
|
3) Как да получа знаци от низ?
Как да получа знаци от низ?
Метод(и) | Примери) |
---|---|
|
|
4) Как да сравня низове?
„Методът equals проверява дали низовете съвпадат, а методът equalsIgnoreCase проверява дали низовете съвпадат, когато регистърът на буквите се игнорира.
Метод(и) | Метод(и) |
---|---|
|
|
|
|
5) Как да направя всички букви в String главни or малки?
„ Методът toUpperCase връща копие на низа с всички главни букви.“
„ Методът toLowerCase връща копие на низа с всички малки букви.“
Метод(и) | Примери) |
---|---|
|
|
Резултат:
|
|
|
|
Резултат:
|
6) Как да премахна интервалите в началото и края на низ?
„Методът за изрязване връща копие на низ без празни знаци в началото и края.“
Метод(и) | Примери) |
---|---|
|
|
Резултат:
|
GO TO FULL VERSION