首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用换行分隔符解析字符串,然后将其赋值给变量

使用换行分隔符解析字符串,然后将其赋值给变量
EN

Stack Overflow用户
提问于 2018-06-01 05:41:26
回答 1查看 59关注 0票数 0

我正在尝试将串行输入解析成句子,然后将这些句子赋给一个变量。下面是我正在尝试做的一个例子。我的串口当前输出如下:

代码语言:javascript
复制
This is the first sentence. 
This is the second sentence. 
This is the third sentence. 

我读到了这篇文章,并使用以下命令打印出来:

代码语言:javascript
复制
scanner := bufio.NewScanner(port)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
        }

我想要做的是将每个句子赋给一个新的变量。我想稍后做一些类似这样的事情(示例):

代码语言:javascript
复制
fmt.Printf("First sentence: %q\n", firstSen)
fmt.Printf("Second sentence: %q\n", secondSen)
fmt.Printf("Third sentence: %q\n", thirdSen)

并且它应该输出:

代码语言:javascript
复制
First sentence: This is the first sentence. 
Second sentence: This is the second sentence. 
Third sentence: This is the third sentence.

我该如何着手做这件事?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 06:22:22

从输入中收集行:

代码语言:javascript
复制
var lines []string
scanner := bufio.NewScanner(port)
for scanner.Scan() {
    lines = append(lines, scanner.Text())
}
if err := scanner.Err(); err != nil {
    // handle error
}

遍历变量并将一行赋值给该变量:

代码语言:javascript
复制
var firstSen, secondSen, thirdSen string
for i, s := range []*string{&firstSen, &secondSen, &thirdSen} {
    if i >= len(lines) {
        break
    }
    *s = lines[i]
}

按照问题中所示打印:

代码语言:javascript
复制
fmt.Printf("First sentence: %q\n", firstSen)
fmt.Printf("Second sentence: %q\n", secondSen)
fmt.Printf("Third sentence: %q\n", thirdSen)

根据您的需求,您可以删除变量并直接使用代码段:

代码语言:javascript
复制
fmt.Printf("First sentence: %q\n", line[0])
fmt.Printf("Second sentence: %q\n", line[1])
fmt.Printf("Third sentence: %q\n", line[2])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50633207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档