首页 > 后端开发 > Golang > 正文

如何使用 Fmt.Scanln 从字符串中读取空格分隔的字符串?

Susan Sarandon
发布: 2024-11-04 00:04:03
原创
388 人浏览过

How to Read Space-Separated Strings from a String Using Fmt.Scanln?

使用 Fmt.Scanln 从字符串中读取空格分隔的字符串

Scanln 函数是 fmt 包的一部分,可以读取从字符串输入。然而,使用 Scanln 时遇到的一个常见问题是,当需要多个空格分隔的单词时,仅获取第一个单词。

在提供的示例中:

<code class="go">package main

import "fmt"

func main() {
    var s string
    fmt.Scanln(&s)
    fmt.Println(s)
    return
}</code>
登录后复制

使用输入运行此代码时“31 of Month”,它会输出“31”,而不是预期的“31 of Month”。这是因为 Scanln 将输入视为单个标记,忽略空格。

要解决此问题,您可以使用以下解决方案:

1.同时扫描多个变量

fmt Scanln 接受多个参数,允许您同时读取多个单词。

<code class="go">package main

import "fmt"

func main() {
    var s1 string
    var s2 string
    fmt.Scanln(&s1, &s2)
    fmt.Println(s1)
    fmt.Println(s2)
    return
}</code>
登录后复制

此代码将正确输出“31”和“月份”。

2。使用 Bufio Scanner

bufio 包简化了从各种来源(包括字符串)读取输入的过程。

<code class="go">package main
import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    for scanner.Scan() {
        s := scanner.Text()
        fmt.Println(s)
    }
    if err := scanner.Err(); err != nil {
        os.Exit(1)
    }
}</code>
登录后复制

使用此代码,您可以读取并打印每一行单独。

以上是如何使用 Fmt.Scanln 从字符串中读取空格分隔的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!