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

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

от sherwood_littel , в категории: Golang , 7 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от ottilie.farrell , 7 месяцев назад

@sherwood_littel 

Вот пример кода на Go, который отбирает все цифры из строки:

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

import (
	"fmt"
	"unicode"
)

func main() {
	str := "abcd1234efgh5678ijkl90"
	digits := extractDigits(str)
	fmt.Println(digits) // [1 2 3 4 5 6 7 8 9 0]
}

func extractDigits(str string) []int {
	digits := make([]int, 0)
	for _, char := range str {
		if unicode.IsDigit(char) {
			digits = append(digits, int(char-'0'))
		}
	}
	return digits
}


Здесь мы используем пакет unicode, чтобы проверить, является ли каждый символ числом с помощью функции unicode.IsDigit(). Если символ является цифрой, его код ASCII вычитается из кода символа '0', чтобы получить числовое значение, а затем добавляется в срез digits.