【问题标题】:String format truncating value字符串格式截断值
【发布时间】:2018-08-23 22:41:52
【问题描述】:

我敢肯定,这将是一个简单的问题。我是 Go 新手,不知道发生了什么。

package main

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

func main() {
    fmt.Print("*A basic GoLang/Native example*\n\n")
    fmt.Print("Enter your name:\n")

    reader := bufio.NewReader(os.Stdin)
    name, _ := reader.ReadString('\n')
    name = strings.TrimSuffix(name, "\n")

    fmt.Printf("Hello, %s, how are you?", name)

    reader.ReadString('\n')

}

我正在从读取用户输入中删除存储在变量名称中的换行符,但最后一个 Printf 语句正在从该行中截断 Hello。

【问题讨论】:

    标签: string go printf


    【解决方案1】:

    我想你正在寻找strings.TrimSpace

    要删除前导和尾随空格,请使用this

    改变这一行

    name = strings.TrimSuffix(name, "\n")

    name = strings.TrimSpace(name)

    输出:

    *A basic GoLang/Native example*
    
    Enter your name:
    Source Cast
    Hello, Source Cast, how are you?
    

    它适用于 Windows 和 Linux。

    【讨论】:

    • 天哪,谢谢,有一本书指出要删除从用户输入中输入的换行符,以使用 strings.TrimSuffix。我想这是不正确的......如果你好奇,这里是一个链接。 flaviocopes.com/golang-remove-new-line-from-readstring
    • 不幸的是,它适用于 Linux,但不适用于 windows。
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2014-09-14
    • 2015-12-14
    • 1970-01-01
    相关资源
    最近更新 更多