"Какво мислиш, Амиго? Кой е най-популярният Java клас след int?"
„Вече ми даде спойлер в заглавието на урока, Ели. Това е String
!“
„Наистина, това е спойлер. String
Използва се абсолютно навсякъде. Има куп полезни методи, които е по-добре да знаете.
„ String
Класът е единственият клас, различен от примитивните типове, чиито литерали могат да се използват в израз switch
; компилаторът обработва добавянето на низове и String обектите по специален начин; String
обектите се съхраняват в паметта по специален начин. По принцип класът String
е много специален клас.
„Също така String
класът има куп помощни класове, чиято цел е допълнително да опростят работата с низове в Java. Когато научите всичко това, много неща наистина ще станат много по-лесни за вас.“
— Нямам търпение.
„Е, ще започнем от самото ядро на тази екосистема — организацията на класа String
. Структурата на String
класа всъщност е много проста: вътре в него има масив от знаци ( char
масив), който съхранява всички знаци на низа. например, ето How се съхранява думата „Здравей“:
Важно е.
Всъщност това не е съвсем точно. Тъй като String
класът е много важен, той използва много оптимизации и данните се съхраняват вътрешно не като масив от знаци, а просто като масив от byteове.
Методи на класа String
Класът String
има много методи: има само 18 конструктора! И така, по-долу ще изброя само най-често използваните:
Методи | Описание |
---|---|
|
Връща броя знаци в низа |
|
Проверява дали низът е празен низ |
|
Проверява дали низът съдържа само празни знаци: интервал, раздел, нов ред и т.н. |
|
Връща знака в позицията на индекса в низа. |
|
Връща масив от знаци (копие), които съставят низа |
|
Преобразува низ в набор от byteове и връща масива от byteове. |
|
Разделя низ на множество поднизове. |
|
Съединява множество поднизове заедно |
|
Поставя низ в набора от низове. |
— Това изглежда много добре!
„Нека напишем програма, която преобразува файлов път от Unix стил в стил Windows. Unix използва знака /
за разделяне на папки, докато Windows използва \
знака.
Решение 1. Използване на char
масив
Код | Бележки |
---|---|
|
Създайте обект на скенер Прочетете ред от конзолата Преобразувайте низ в масив от знаци Превъртете символите Ако знакът е / , заменете го с \ . Не забравяйте за бягството. Създайте нов низ въз основа на масива от знаци. Покажете низа. |
Решение 2. Използване на методите split()
и join()
:
Код | Бележки |
---|---|
|
Създайте обект на скенер Прочетете ред от конзолата Преобразувайте низ в масив от низове . Символът / се използва като разделител (допълнителните две наклонени черти са резултат от двойно екраниране). Свържете всички низове в масива от низове . Използва се \ като разделител (виждаме го екранирано). Покажете низа. |
Решение 3. Използване на replace(char oldChar, char newChar)
метода:
Код | Бележки |
---|---|
|
Създайте обект на скенер Прочетете ред от конзолата Просто заменете един знак с друг (вторият е екраниран) Покажете низа. |
„Най-много ми хареса третото решение. Но ще упражня и трите.“
"Браво, Амиго. Виждам, че вече нямаш търпение да приложиш новите си знания на практика. Урокът приключи."
GO TO FULL VERSION