字符串数组拼接成字符串,内容错乱

来源:2-5 循环

qq_FIGHT_ABCD_0

2022-01-20

读取一个配置文件内容,构建一个字符串数组,然后把数组内容拼接成一个字符串,拼接出来的字符串显示错乱

demo如下
新建一个 info.txt,内容如下

name=go
age=20

新建一个go文件

func main() {
	bytes, err := ioutil.ReadFile("info.txt")
	if err != nil {
		fmt.Println("读取信息失败")
		return
	}

	s := string(bytes)
	fmt.Printf("文件内容: \n%s\n", s)
	name := ""
	age := ""
	ss := strings.Split(s, "\n")
	for _, v := range ss {
		if strings.HasPrefix(v, "name") {
			name = strings.Split(v, "=")[1]
		}
		if strings.HasPrefix(v, "age") {
			age = strings.Split(v, "=")[1]
		}
	}
	fmt.Printf("变量 name: %s\n", name)
	fmt.Printf("变量 age: %s\n", age)
	arr := []string{
		"name: ",
		name,
		", age ",
		age,
	}
	for k, v := range arr {
		fmt.Printf("arr[%d] = %s\n", k, v)
	}
	join := strings.Join(arr, " ")
	fmt.Println(join)
}

strings.Join(arr, " ") 输出结果:
, age:20

不知道为什么,name没有输出出来
用for循环使用 += 拼接字符串也是显示错乱

写回答

1回答

ccmouse

2022-01-20

这个看起来像是读文件读错了,检查一下这里s := string(bytes),s是多少。

这里对的话,这个问题还是比较好进一步检查的。可以使用调试器单步跟踪,一步步总能看出错在哪里。甚至一共也就这么几行,一行行把结果输出来也行。

0
4
qq_FIGHT_ABCD_0
回复
ccmouse
运行的命令后面跟一个 > log.txt 这个输出是正确的。 那就是控制台显示的问题了
2022-01-26
共4条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程