Ввод многострочной строки

Я создал этот простой код на Go для выполнения обработки данных — удаления {, замены }, удаления разрывов строк и т. д. Эта обработка прекрасно выполняется в функции removelinebreaks(), и данные вставляются в var idsUnits как многострочная литеральная строка с кавычками вместо двойных, поскольку ввод данных имеет разрывы строк.

Использованные данные:

{10F3DDED-800A-EC11-A30E-0050568A2E98}
{14F3DDED-800A-EC11-A30E-0050568A2E98}
{48B209F4-800A-EC11-A30E-0050568A2E98}

Мне нужно улучшить этот код, добавив ввод, в котором пользователя просят вставить эти данные в консоль, а не напрямую в переменную idsUnits, а затем отправить их на обычную обработку в Removelinebreaks().

Я попробовал несколько способов, но не могу заставить его работать. У кого-нибудь есть идеи?

https://www.onlinegdb.com/fork/v4lTVTD02

Пожалуйста, разместите свой код здесь, а не ссылку на другое место.

Phix 18.04.2024 02:25
В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
1
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете читать строки из стандартного ввода с помощью bufio и разделять строки ввода, как показано ниже:

package main

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

func main() {
    reader := bufio.NewReader(os.Stdin)
    var lines []string

    for {
        fmt.Print("Enter text (or leave empty to finish): ")
        input, _ := reader.ReadString('\n')
        trimmedInput := strings.TrimSpace(input) // Remove leading and trailing white space

        if trimmedInput == "" { // Check if the input is empty (i.e., user pressed "Enter").
            break // Exit the loop if input is empty.
        }
        lines = append(lines, trimmedInput)
    }

    ids := strings.Join(lines, "\n")
    removelinebreaks(ids)
}

func removelinebreaks(ids string) {
    idsForRemove := ids

    result := strings.ReplaceAll(idsForRemove, "{", "") // Remove the {
    result = strings.ReplaceAll(result, "}", ",")       // Replace the } with ,
    result = strings.ReplaceAll(result, "\n", "")       // Remove line breaks
    result = strings.TrimSuffix(result, ",")            // Remove the last comma
    
    fmt.Println("data output:\n")
    
    fmt.Println(result)
}

Другие вопросы по теме