strings.Split 添加了额外的换行符

使用读取文件后,ioutil.ReadFile我尝试使用strings.Split和分隔符拆分我的字节“字符串” "\n",但我收到了一个额外的换行符(切片的长度增加了+ 1)。


为什么这不符合预期?


// numbers.txt

1

2

3

4

5

func main() {

    data, _ := ioutil.ReadFile("numbers.txt")


    input := strings.Split(string(data), "\n")


    fmt.Println("Len: ", len(input))


    for i, v := range input {

        fmt.Println(i, v)

    }

}


// Output

Len: 6

0 1

1 2

2 3

3 4

4 5

5

预期的:


Len: 5

0 1

1 2

2 3

3 4

4 5

可能是Read text file into string array (and write)

的副本 查看评论


注意 strings.Split 将在解析常规 POSIX 文本文件示例时附加一个额外的行(一个空字符串) – bain 2014-12-01 20:33



德玛西亚99
浏览 158回答 1
1回答

ibeautiful

strings.Split不会附加额外的行 - 否则它将在文档中指定。如果您按以下方式查看文件:1\n2\n3\n4\n5\n您会注意到,如果您将字符串拆分为 ,则必须有 6 个条目\n。1\n2\n3\n4\n5\n<last empty item is here>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go