Как подсчитать конкретные символы, присутствующие в срезе в Голанге?
В языке Go фрагмент более мощный, гибкий, удобный, чем массив, и представляет собой легкую структуру данных. Срез представляет собой последовательность переменной длины, в которой хранятся элементы аналогичного типа, вам не разрешается хранить элементы разных типов в одном срезе.
В срезе байтов Go вы можете подсчитать элементы, присутствующие в нем, с помощью функции Count. Эта функция возвращает общее количество элементов или общее количество определенного элемента, доступного в данном срезе. Эта функция определена в пакете байтов, поэтому вам необходимо импортировать пакет байтов в свою программу для доступа к функции счетчика.
Синтаксис:
func Count (slice_1, sep_slice [] byte) int
Если sep_slice является пустым срезом, то эта функция возвращает 1 + количество кодовых точек в кодировке UTF-8, присутствующих в срезе_1 .
Example:
// Go program to illustrate how to // count the elements of the slice package main import ( "bytes" "fmt" ) func main() { // Creating and initializing // slices of bytes // Using shorthand declaration slice_1 := []byte{ "A" , "N" , "M" , "A" , "P" , "A" , "A" , "W" } slice_2 := []byte{ "g" , "e" , "e" , "k" , "s" } // Counting elements in the given slices // Using Count function res1 := bytes.Count(slice_1, []byte{ "A" }) res2 := bytes.Count(slice_2, []byte{ "e" }) res3 := bytes.Count([]byte( "GeeksforGeeks" ), []byte( "ks" )) res4 := bytes.Count([]byte( "Geeks" ), []byte( "" )) res5 := bytes.Count(slice_1, []byte( "" )) // Displaying results fmt.Println( "Result 1:" , res1) fmt.Println( "Result 2:" , res2) fmt.Println( "Result 3:" , res3) fmt.Println( "Result 4:" , res4) fmt.Println( "Result 5:" , res5) } |
Выход:
Результат 1: 4 Результат 2: 2 Результат 3: 2 Результат 4: 6 Результат 5: 9