Как в golang отобрать все цифры из строки?

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

от kari , в категории: Общие вопросы , 14 дней назад

Как в golang отобрать все цифры из строки?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

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

от maiya_cummings , 8 дней назад

@kari 

В Golang мы можем использовать функцию unicode.IsDigit(), чтобы проверить, является ли символ цифрой. Мы можем пройтись по строке и отобрать все символы-цифры.


Вот пример кода:

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

import (
	"fmt"
	"unicode"
)

func main() {
	str := "abc123def456"

	digits := []rune{}

	for _, char := range str {
		if unicode.IsDigit(char) {
			digits = append(digits, char)
		}
	}

	fmt.Println(string(digits)) // 123456
}


Здесь мы инициализируем пустой срез рун (т.е. символов Unicode) с именем digits, который будет содержать все цифры из строки. Затем мы проходим по каждому символу строки с помощью цикла range. Если символ является цифрой, мы добавляем его в срез digits с помощью функции append().


Наконец, мы выводим значения среза digits, преобразовывая его в строку с помощью функции string(). В результате получаем строку, содержащую все цифры из исходной строки.