Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Манипулација стринговима је фундаментална у развоју софтвера; већина програмских језика ипак обезбеђује тип стринга. Стринг је низ знакова: слова, бројева и симбола.

Манипулација стринговима је згодна за различите апликације, од обраде текста и анализе података до веб развоја. Популарне операције манипулације стринговима су конкатенација, валидација података, екстракција и форматирање. Го обезбеђује пакет за манипулацију стринговима под називом „стрингс“ у стандардној библиотеци.

Тхе стрингс Пацкаге

Тхе жице пакет пружа разне корисне функције за манипулацију стринговима и друге операције. Пакет укључује функционалност за операције подстрингова, скраћивање, упоређивање стрингова, конверзију низова, прављење низова, раздвајање и још много тога.

Пакет стрингова можете увести тако што ћете навести име пакета на листи увоза.

увоз"жице"

Тражење подстрингова

Тхе жице пакет пружа три функције за тражење подстрингова: тхе Садржи функција, тхе ЦонтаинсАни функција, и ЦонтаинсРуне функција.

Тхе Садржи функција проверава да ли наведени стринг садржи подниз. Тхе ЦонтаинсАни функција проверава да ли стринг садржи знакове у поднизу, а ЦонтаинсРуне функција проверава да ли стринг садржи руну (уникод карактер).

увоз (
"фмт"
"жице"
)

фунцглавни() {
аСтринг := "Здраво Свете!"
подниз := "Свет"
знакова := "аеиоу"
аРуне := 'о'

фмт. Принтлн (стрингови. Садржи (аСтринг, подниз)) // Излаз: истина
фмт. Принтлн (стрингови. ЦонтаинсАни (аСтринг, знакови)) // Излаз: истина
фмт. Принтлн (стрингови. ЦонтаинсРуне (аСтринг, аРуне)) // Излаз: истина
}

Можете да преузмете индекс подниза са Индекс, ИндекАни, ИндекБите, и ИндекФунц функције. Тхе Индекс функција враћа индекс подниза, ако се појављује у другом датом низу. Тхе ИндекАни функција враћа индекс прве инстанце Уницоде кодна тачка или -1 ако ниједан од ликова није присутан.

увоз (
"фмт"
"жице"
)

фунцглавни() {
аСтринг := "Здраво Свете!"
подниз := "свет"
знакови := "свет"
битеЦхарацтер := бајт('о')
аРуне := руне('о')

фмт. Принтлн (стрингови. Индекс (аСтринг, подниз)) // Излаз: 7
фмт. Принтлн (стрингови. ИндекАни (аСтринг, знакови)) // Излаз: 7
фмт. Принтлн (стрингови. ИндекБите (аСтринг, битеЦхарацтер)) // Излаз: 4

ф := фунцруне)боол {
повратак р == 'о'
}

фмт. Принтлн (стрингови. ИндекФунц (аСтринг, ф)) // Излаз: 4
фмт. Принтлн (стрингови. ИндекРуне (аСтринг, аРуне)) // Излаз: 4
}

ИндекБите враћа индекс прве инстанце бајт карактера у низу или -1. Тхе ИндекФунц функција враћа индекс у стринг прве Уницоде тачке која задовољава дату функцију. Коначно, ИндекРуне функција враћа индекс прве инстанце Уницоде кодне тачке руне.

Замена подстрингова у Го

Тхе Заменити и Замените функција помоћ при замени подстрингова. Тхе Заменити функција узима стринг, оригинални подниз и замену и неколико замена. Тхе Замените функција узима само стринг, почетни подниз и замену.

увоз (
"фмт"
"жице"
)

фунцглавни() {
тхеСтринг := „Ово је тест стринг који треба изменити.“
фмт. Принтлн (стрингови. Замени (Стринг, "је", "био", 1))
фмт. Принтлн (стрингови. Замени (Стринг, "је", "био", -1))
фмт. Принтлн (стрингови. Замени све (стринг, "је", "био"))
}

Приметите да можете да користите и Реплаце и РеплацеАлл да замените свако појављивање унутар стринга.

Цепање и спајање низова

Тхе жице пакет садржи Разделити, СплитАфтер, СплитАфтерН, и СплитН функције за раздвајање стрингова које враћају део стрингова.

Тхе Разделити метода дели помоћу одређеног граничника. Слично као Разделити метод, тхе СплитАфтер метода дели стринг, али укључује сепаратор у своје резултате.

увоз (
"фмт"
"жице"
)

фунцглавни() {
с := „Ово је тестни низ који треба поделити.“

фмт. Принтлн (стрингови. Сплит (с, " "))
фмт. Принтлн (стрингови. СплитАфтер (с, " "))
фмт. Принтлн (стрингови. СплитАфтерН(с, " ", 3))
фмт. Принтлн (стрингови. СплитН(с, " ", 3))
}

Тхе СплитАфтерН метода је слична оној СплитАфтер функција осим што функција дели стринг на одређени максимум подстрингова. Тхе СплитН метода дели стринг на одређени максимални број без укључивања сепаратора у подстрингове.

Можете спојити низове помоћу Придружити функција из жице пакет. Тхе Придружити функција узима исечак и граничник.

увоз (
"фмт"
"жице"
)

фунцглавни() {
фмт. Принтлн (стрингови. Придружити([]низ{"Здраво", "Свет"}, ":"))
// Излаз: "Здраво: Свет"
}

Манипулисање случајним низом

Манипулисање малим словима је згодно за многе задатке, укључујући рад са документацијом. Можете користити Спустити функција за мала слова, ТоУппер функција за велика слова, и ТоТитле функција за велика слова.

увоз (
"фмт"
"жице"
)

фунцглавни() {
с := "Ово је тест стринг."

фмт. Принтлн (стрингови. ТоЛовер (с) // ово је тест стринг.
фмт. Принтлн (стрингови. ТоУппер (с) // ОВО ЈЕ ТЕСТНИ НИЗ.
фмт. Принтлн (стрингови. ТоТитле (с) // ОВО ЈЕ ТЕСТНИ НИЗ.
}

Стринг Буилдинг у Го

Градитељи низова су тип који омогућава ефикасну конкатенацију у Го. Тхе бајтова. Буффер типе је један од најчешће коришћених градитеља стрингова. Тхе бајтова. Буффер метод имплементира бафер бајтова који се може повећати са методама читања и писања за операције, омогућавајући ефикасно додавање низова без потребе за прављењем нових копија, за разлику од + операција и Придружити функција.

увоз (
"фмт"
"жице"
)

фунцглавни() {
вар б жице. Буилдер

// Напиши неке стрингове у буилдер
б. ВритеСтринг("Ово")
б. ВритеСтринг("је")
б. ВритеСтринг("а")
б. ВритеСтринг("тест ")
б. ВритеСтринг("низ.")

// Добија дужину градитеља
фмт. Принтлн (б. Лен())

// Конвертуј буилдер у стринг
стр := б. Низ()
фмт. Принтлн (стр)

// Ресетујте буилдер
б. Ресетовати()

// Напиши још неке стрингове у буилдер
б. ВритеСтринг("Ово")
б. ВритеСтринг("је")
б. ВритеСтринг("други ")
б. ВритеСтринг("тест ")
б. ВритеСтринг("низ.")

// Добити капацитет градитеља
фмт. Принтлн (б. Капа())

// Поново конвертуј буилдер у стринг
стр = б. Низ()
фмт. Принтлн (стр)
}

Тхе главни функција показује како можете да користите жице. Буилдер тип за ефикасну изградњу струна. Тхе ВритеСтринг методом Стрингс. Буилдер типе проширује низ низова један на други, а Лен метода враћа дужину изграђеног низа.

Тхе Низ метода конвертује садржај градитеља у стринг, а Ресетовати метода ресетује градитељ за додатну изградњу низа.

Тхе Капа метода враћа капацитет градитеља. Ово је тренутни простор који је Го доделио стрингу.

Подрезивање струна у Го

Тхе жице пакет такође пружа функционалност за сечење жица у Трим, ТримЛефт, ТримПрефик, ТримРигхт, ТримСпаце, и ТримСуффик функције.

увоз (
"жице"
"фмт"
)

фунцглавни() {
// цео низ
с := "Здраво Свете!"

// елемент за трим
префикс := "Здраво"
суфикс := "Свет!"

// исеца низ према специфицираном скупу трим
фмт. Принтлн (стрингови. Трим (с, "!"))

// сече размацима на почетку и на крају низа
фмт. Принтлн (стрингови. ТримСпаце (с)

// сече од левог низа према наведеном скупу трим
фмт. Принтлн (стрингови. ТримЛефт (с, "Здраво"))

// сече из десног низа помоћу одређеног трим скупа
фмт. Принтлн (стрингови. ТримРигхт (с, "Свет!"))

// сече префикс
фмт. Принтлн (стрингови. ТримПрефик (с, префикс))

// сече одређени суфикс
фмт. Принтлн (стрингови. Тримсуфикс (с, суфикс))
}

Тхе главни функција показује како можете да користите функције за сечење. Различите функције уређују с низ на различите начине:

Можете да форматирате стрингове у Го

Го стандардна библиотека такође пружа фмт пакет за форматирање стрингова. Фмт пакет користи глаголе за форматирање у стилу Ц за ефикасно форматирање стрингова у Го.