English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Golang

Контрольные структуры в Golang

Функции и методы в Golang

Структуры в Golang

Срезы и массивы в Golang

Строки (String) в Golang

Пункторы Golang

Интерфейсы Golang

Конкурентное программирование Golang

Исключения (Error) в Golang

Другие вопросы Golang

Разделение строк в Go

В языке GoСтрокаОтличается от Java, C++, Python и других языков. Это серия символов с переменной шириной, каждый из которых кодируется одним или несколькими байтами в формате UTF-8. В строках Go можно использовать следующие функции для разбиения строки на список. Эти функции определены в пакете строк, поэтому вам нужно импортировать пакет строк в вашем приложении, чтобы получить доступ к этим функциям:

1.Split:Эта функция разбивает строку на все подстроки, разделенные заданным разделителем, и возвращает срез, содержащий эти подстроки.

Синтаксис:

func Split(str string, sep string) []string

Здесь str является строкой, sep является разделителем. Если str не содержит заданного sep и sep не пуст, то он вернет срез длиной 1, содержащий только str. Или, если sep пуст, то он разбивает после каждого UTF-8 последовательности. Или, если str и sep оба пусты, то он вернет пустой срез.

package main
import (
    "fmt"
    "strings"
)
func main() {
    // Создавать и инициализировать строки
    str1 := "Welcome, to the, online portal, of w3codebox"
    str2 := "My dog name is Dollar"
    str3 := "I like to play Ludo"
    // Показывать строки
    fmt.Println("Строка 1: ", str1)
    fmt.Println("Строка 2: ", str2)
    fmt.Println("Строка 3: ", str3)
    // Разбивать заданную строку
    //Использование функции Split()
    res1 := strings.Split(str1, ",")
    res2 := strings.Split(str2, "")
    res3 := strings.Split(str3, "!")
    res4 := strings.Split("", "w3codebox, geeks")
    //Отображение результатов
    fmt.Println("\nРезультат 1: ", res1)
    fmt.Println("Результат 2: ", res2)
    fmt.Println("Результат 3: ", res3)
    fmt.Println("Результат 4: ", res4)
   }

Вывод:

Строка 1: [Добро пожаловать, в онлайн портал, w3codebox]
Строка 2: [Мой пес по имени Доллар]
Строка 3: [Я люблю играть в Лудо]
Результат 1: [Welcome to the online portal of w3codebox]
Результат 2: [M y d o g n a m e i s D o l l a r]
Результат 3: [Я люблю играть в Лудо]
Результат 4: []

2. SplitAfter:Эта функция разбивает строку на все подстроки после каждого примера разделителя и возвращает срез, содержащий эти подстроки.

Синтаксис:

func SplitAfter(str string, sep string) []string

Здесь str является строкой, sep является разделителем. Если str не содержит заданного sep и sep не пуст, то он вернет срез длиной 1, содержащий только str. Или, если sep пуст, то он разбивает после каждого UTF-8 последовательности. Или, если str и sep оба пусты, то он вернет пустой срез.

package main
import (
    "fmt"
    "strings"
)
func main() {
    // Создавать и инициализировать строки
    str1 := "Welcome, to the, online portal, of w3codebox"
    str2 := "My dog name is Dollar"
    str3 := "I like to play Ludo"
    // Показывать строки
    fmt.Println("Строка 1: ", str1)
    fmt.Println("Строка 2: ", str2)
    fmt.Println("Строка 3: ", str3)
    // Разбивать заданную строку
    //Использование функции SplitAfter()
    res1 := strings.SplitAfter(str1, ",")
    res2 := strings.SplitAfter(str2, "")
    res3 := strings.SplitAfter(str3, "!")
    res4 := strings.SplitAfter("", "w3codebox, geeks")
    // Показывать результаты
    fmt.Println("\nРезультат 1: ", res1)
    fmt.Println("Результат 2: ", res2)
    fmt.Println("Результат 3: ", res3)
    fmt.Println("Результат 4: ", res4)
}

Вывод:

Строка 1: [Добро пожаловать, в онлайн портал, w3codebox]
Строка 2: [Мой пес по имени Доллар]
Строка 3: [Я люблю играть в Лудо]
Результат 1: [Welcome, to the, online portal, of w3codebox]
Результат 2: [M y d o g n a m e i s D o l l a r]
Результат 3: [Я люблю играть в Лудо]

3. SplitAfterN:Эта функция разбивает строку на все подстроки после каждого примера разделителя и возвращает срез, содержащий эти подстроки.

Синтаксис:

func SplitAfterN(str string, sep string, m int) []string

здесь,strявляется строкой,sepявляется разделителем, m используется для поиска количества подстрок, которые нужно вернуть. Здесь, еслиm> 0Тогда максимальное количество, которое оно может вернутьmподстроки, и последняя строковая подстрока не будет разрезана. Еслиm == 0если m == 0, то оно вернет nil. Еслиm < 0если m < 0, то оно вернет все подстроки.

package main 
  
import ( 
    "fmt"
    "strings"
) 
  
func main() { 
  
    // Создавать и инициализировать строки
    str1 := "Welcome, to the, online portal, of w3codebox"
    str2 := "My dog name is Dollar"
    str3 := "I like to play Ludo"
  
    // Показывать строки
    fmt.Println("Строка 1: ", str1) 
    fmt.Println("Строка 2: ", str2) 
    fmt.Println("Строка 3: ", str3) 
  
    // Разбивать заданную строку
    // Использовать функцию SplitAfterN()
    res1 := strings.SplitAfterN(str1, ",", 2) 
    res2 := strings.SplitAfterN(str2, "", 4) 
    res3 := strings.SplitAfterN(str3, "!", 1) 
    res4 := strings.SplitAfterN("", "w3codebox, geeks", 3) 
  
    // Показывать результаты 
    fmt.Println("\nРезультат 1: ", res1) 
    fmt.Println("Результат 2: ", res2) 
    fmt.Println("Результат 3: ", res3) 
    fmt.Println("Результат 4: ", res4) 
  
}

Вывод:

Строка 1: [Добро пожаловать, в онлайн портал, w3codebox]
Строка 2: [Мой пес по имени Доллар]
Строка 3: [Я люблю играть в Лудо]
Результат 1: [Добро пожаловать, в онлайн портал, w3codebox]
Результат 2: [Мой пес по имени Доллар]
Результат 3: [Я люблю играть в Лудо]
Результат 4: []