登录
首页 >  Golang >  Go问答

难以消除“\n”作为字符串分隔符。 (戈兰)

来源:stackoverflow

时间:2024-03-17 14:00:30 228浏览 收藏

在从键盘输入字符串时,作者遇到了一个难题:字符串分隔符“\n”无法消除。由于“\n”被保留为最后一个输入,导致作者无法正确识别键盘输入的字符串最后一个字母。尽管尝试了“trimsuffix”函数,问题仍然存在。作者最终发现,使用“strings.trim”函数可以有效去除“\n”分隔符,从而解决了问题。

问题内容

当从键盘读取字符串时,我正在努力删除“\ n”作为字符串分隔符。目的是识别键盘输入接收到的字符串的最后一个字母。

但事实证明,他并没有将“n”识别为最后一个字母。我认为他将“\n”保存为最后一个输入。

测试:尝试写“ian”,结果会是“未找到”。

注意:我已经尝试使用“trimsuffix”功能,但没有解决问题。

package main

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

func main() {

    str := bufio.NewReader(os.Stdin)

    fmt.Println("Please enter a string:")

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

    //---------------------------------------------

    s1 := strings.HasPrefix(strReciv, "i")
    s2 := strings.Contains(strReciv, "a")
    s3 := strings.HasSuffix(strReciv, "n")

    if s1 && s2 && s3 {

        fmt.Println("Found!")
    } else {
        fmt.Println("Not Found")
    }

}

正确答案


strings.trim 对我有用,如下所示

package main

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

func main() {

    str := bufio.NewReader(os.Stdin)

    fmt.Println("Please enter a string:")

    sin, _ := str.ReadString('\n')
    strReciv := strings.Trim(sin, "\n")

    //---------------------------------------------

    s1 := strings.HasPrefix(strReciv, "i")
    s2 := strings.Contains(strReciv, "a")
    s3 := strings.HasSuffix(strReciv, "n")

    if s1 && s2 && s3 {

        fmt.Println("Found!")
    } else {
        fmt.Println("Not Found")
    }

}

今天关于《难以消除“\n”作为字符串分隔符。 (戈兰)》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>