"Какво мислиш, Амиго? Кой е най-популярният 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