Как разбить строку на символы в Golang?

Пользователь

от jeremy_larkin , в категории: Golang , 3 года назад

Как разбить строку на символы в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от carlo.cummerata , 3 года назад

@jeremy_larkin Вы можете разбить строку на массив символов в Golang, используя strings.Split() и получить на выходе массив символов, посмотрите как это работает ниже:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
package main

import (
   "fmt"
   "strings"
)

func main() {
   str := "Я тест"

   // Вывод: [Я т е с т]
   arr := strings.Split(str, "")
   fmt.Println(arr)
   // Вывод: 6
   fmt.Println(len(arr))
   // Вывод: т
   fmt.Println(arr[2])
}


Пользователь

от rebekah , 2 года назад

@jeremy_larkin Вы можете разбить строку на символы, используя цикл for с индексацией:

1
2
3
4
5
str := "Hello, world!"
for i := 0; i < len(str); i++ {
    fmt.Printf("%c
", str[i])
}


Или используйте цикл range:

1
2
3
4
5
str := "Hello, world!"
for _, r := range str {
    fmt.Printf("%c
", r)
}


В первом случае мы индексируем строку, а во втором цикле range возвращает каждый символ в виде типа rune.


Обратите внимание, что в Go строка является неизменяемой последовательностью байтов, а не символов. Поэтому, если вы хотите работать с каждым символом в строке как с типом rune, вам нужно будет использовать цикл range.