Parsing 如何从行中删除\n

Parsing 如何从行中删除\n,parsing,go,line,Parsing,Go,Line,结束它在每一行上添加\n,结束程序工作,仅使用最后一行 请举个例子,我尝试任何方法结束我在这里发现的任何解决方案都不适用于我。您可以切掉最后一个字符: file, _ := os.Open("x.txt") f := bufio.NewReader(file) for { read_line, _ := ReadString('\n') fmt.Print(read_line) // other code what work

结束它在每一行上添加\n,结束程序工作,仅使用最后一行


请举个例子,我尝试任何方法结束我在这里发现的任何解决方案都不适用于我。

您可以切掉最后一个字符:

file, _ := os.Open("x.txt")
    f := bufio.NewReader(file)

    for {
        read_line, _ := ReadString('\n')
        fmt.Print(read_line)


        // other code what work with parsed line...
        }
也许更好的方法是使用字符串库:

read_line = read_line[:len(read_line)-1]

如果您想逐行读取文件,使用将更容易。扫描仪不会将
结束行
\n
\r\n
)包含在该行中

read_line = strings.TrimSuffix(read_line, "\n")
如果您想删除
结束行
,我建议您使用,即

更新:
正如@gwynethlewelyn所指出的,使用
TrimRight
将更简单(更干净),即


在内部,
TrimRight
函数调用
TrimRightFunc
,如果该字符与作为
TrimRight
第二个参数给定的任何字符匹配,则将删除该字符

不工作:(read_-line[:len(read_-line)-1]已评估但未使用您必须使用结果:read_-line=read_-line[:len(read_-line)+1]。warpwallet2.go:72:未定义:字符串中的字符串。TrimSuffix导入需要添加什么开始工作?很抱歉,请尝试添加字符串需要添加stings:/try
import“strings”
:-)
read_-line[:len(read_line)-1]
如果文件末尾没有换行符,则可以去掉最后一个字符。应使用TrimSuffix。请花一些时间了解如何在此处询问。例如,不使用交叉标记。它不会添加换行符,换行符在文件中。从,“ReadString一直读取到输入中第一次出现delim,返回一个包含数据的字符串(包括分隔符)。”它完全按照它所说的做。只使用
read\u line=strings.TrimRight(read\u line,“\r\n”)不是更容易吗
?@gwynethlewelyn你是对的。我误解了
TrimRight
函数。我认为如果它与第二个参数完全匹配,它将删除字符串。啊,我只是问这个问题,因为我是一个新手,有时有很好的理由以不明显的方式做事情。谢谢你的澄清。
file, err := os.Open("yourfile.txt")
if err != nil {
    //handle error
    return
}
defer file.Close()

s := bufio.NewScanner(file)
for s.Scan() {
    read_line := s.Text()

    // other code what work with parsed line...
}
read_line = strings.TrimRightFunc(read_line, func(c rune) bool {
    //In windows newline is \r\n
    return c == '\r' || c == '\n'
})
 read_line = strings.TrimRight(read_line, "\r\n")