Я создал этот простой код на Go для выполнения обработки данных — удаления {, замены }, удаления разрывов строк и т. д. Эта обработка прекрасно выполняется в функции removelinebreaks(), и данные вставляются в var idsUnits как многострочная литеральная строка с кавычками вместо двойных, поскольку ввод данных имеет разрывы строк.
Использованные данные:
{10F3DDED-800A-EC11-A30E-0050568A2E98}
{14F3DDED-800A-EC11-A30E-0050568A2E98}
{48B209F4-800A-EC11-A30E-0050568A2E98}
Мне нужно улучшить этот код, добавив ввод, в котором пользователя просят вставить эти данные в консоль, а не напрямую в переменную idsUnits, а затем отправить их на обычную обработку в Removelinebreaks().
Я попробовал несколько способов, но не могу заставить его работать. У кого-нибудь есть идеи?
Вы можете читать строки из стандартного ввода с помощью 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)
}
Пожалуйста, разместите свой код здесь, а не ссылку на другое место.