请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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循环使用 += 拼接字符串也是显示错乱

正在回答 回答被采纳积分+3

1回答

ccmouse 2022-01-20 22:07:06

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_FIGHT_ABCD_0 #1
    s的内容是txt文件里面的内容,是正确的,但是不知道为什么 strings.Join(arr, " ")  输出的就是不正确,缺少name的信息
    
    通过打印看  s里面的内容是正确的,arr数组里面的内容也是正确的
    
    以下内容是加了打印的输出结果:
    
    文件内容:
    name=go
    age=20
    变量 name: go
    变量 age: 20
    arr[0] = name:
    arr[1] = go
    arr[2] = , age
    arr[3] = 20
     , age  20
    回复 有任何疑惑可以回复我~ 2022-01-21 10:34:27
  • 提问者 qq_FIGHT_ABCD_0 #2
    func main() {
    	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    		msg := readFile()
    		src := []byte(msg)
    		fmt.Println(msg) // 这一行输出不正确
    		_, _ = w.Write(src) // 输出正确
    	})
    	_ = http.ListenAndServe("127.0.0.1:9000", nil)
    }
    
    起一个http的服务,本地log输出的内容不正确,但是输出到浏览器的内容是正确的,能解释下为什么吗?
    回复 有任何疑惑可以回复我~ 2022-01-21 19:50:58
  • ccmouse 回复 提问者 qq_FIGHT_ABCD_0 #3
    是的,这段代码是正确的,可以通过https://play.studygolang.com/p/dqCqX2e7xRY 验证。
    日志不正确这个比较奇怪了。可能是终端配置的原因。
    你在运行的命令后面跟一个 > log.txt。看看log.txt对不对吧。
    回复 有任何疑惑可以回复我~ 2022-01-26 11:14:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信