Язык Go. Перевод символьной строки в числовой срез


Напишем простую программу на Го, которая будет брать строку,  разбивать ее на элементы среза, конвертируя каждый элемент в цифру.

Для начала весь код, а ниже я его подробно разберу:

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {

	r := bufio.NewReader(os.Stdin)

	str, _ := r.ReadString('\n')

	str = strings.TrimSpace(str)

	// str to slice
	s_str := strings.Split(str, " ")
	fmt.Println(s_str)

	s := make([]int, len(s_str))

	for i := range s_str {
		s[i], _ = strconv.Atoi(s_str[i])
		s[i] = s[i] + 1 // test
	}

	fmt.Println(s)

}

Сначала мы создаем новый считыватель (NewWriter) r, используя пакет bufio и стандартный ввод (os.Stdin).

Затем считываем ввод пользователя — строку чисел, разделенных пробелами, используя метод ReadString, который возвращает строку до аргумента \n, который указывает, что функция должна остановить чтение, когда встретит символ новой строки.

Метод TrimSpace используется для удаления пробелов из начала и конца строки, а метод Split — для разбиения строки на фрагменты на основе указанного разделителя (в данном случае пробела » «).

Теперь мы создаем срез (slice) s целых чисел создается с помощью функции make с длиной s_str и перебираем его в цикле for, преобразуя каждую строку в целое число с помощью функции Atoi из пакета strconv.

Аллилуйа, теперь мы знаем, как преобразовать строку чисел, разделенных пробелами, в срез целых чисел в Go 🙂


Запись опубликована в рубрике Go. Добавьте в закладки постоянную ссылку.

Добавить комментарий

🇬🇧 Attention! Comments with URLs/email are not allowed.
🇷🇺 Комментарии со ссылками/email удаляются автоматически.