golang解决单词转换
2026/8/19 18:47:44 网站建设 项目流程

题目描述:输入一个字符串,以回车结束(字符串长度不超过 100)。

该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。

现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

输入格式

输入共 3 行。

第 1 行是包含多个单词的字符串 s;

第 2 行是待替换的单词 a(长度不超过 100);

第 3 行是 a 将被替换的单词 b(长度不超过 100)。

输出格式

共一行,输出将 s 中所有单词 a 替换成 b 之后的字符串。

输入样例:
You want someone to help you You I
输出样例:
I want someone to help you

题解:

package main import ("fmt" "strings" "bufio" "os" ) func main(){ scanner:=bufio.NewScanner(os.Stdin) scanner.Scan() s:=scanner.Text() scanner.Scan() a:=scanner.Text() scanner.Scan() b:=scanner.Text() words:=strings.Split(s," ") for i:=range words{ if words[i]==a{ words[i]=b } } result := strings.Join(words, " ") fmt.Println(result) }

1. 导入必要的包

go

运行

import ( "fmt" // 用于输入输出 "strings" // 用于字符串处理(拆分、拼接等) "bufio" // 用于读取带空格的完整输入 "os" // 提供标准输入(键盘)的访问 )

2. 主函数(main)执行步骤

(1)创建输入扫描器

go

运行

scanner := bufio.NewScanner(os.Stdin)
  • 创建一个scanner对象,用于读取键盘输入(支持读取带空格的完整行)。
  • bufio.Scanner:是 Go 标准库bufio包提供的 “输入扫描工具”,核心功能是按行读取输入(遇到回车就结束一行),还能处理带空格的字符串(这是fmt.Scan做不到的)。
  • os.Stdin:是 Go 标准库os包提供的 “标准输入流”,代表键盘输入(简单说就是你在终端里敲的内容)。
  • scanner := ...:短变量声明,创建一个名为scanner的变量,类型是bufio.Scanner,并把它和 “键盘输入” 绑定起来。
(2)读取三行输入

go

运行

// 读取第1行:原字符串 s(包含多个单词的句子) scanner.Scan() s := scanner.Text() // 读取第2行:待替换的单词 a scanner.Scan() a := scanner.Text() // 读取第3行:替换后的单词 b scanner.Scan() b := scanner.Text()
  • scanner.Scan():读取一行输入(直到回车结束)。
  • scanner.Text():获取读取到的字符串内容。
(3)拆分原字符串为单词切片

go

运行

words := strings.Split(s, " ")
  • strings.Split按空格拆分原字符串s,得到一个单词切片(例如"You want help"拆分为["You", "want", "help"])。
(4)遍历切片,替换目标单词

go

运行

for i := range words { if words[i] == a { // 找到与待替换单词 a 匹配的单词 words[i] = b // 替换为单词 b } }
  • 循环遍历每个单词,若与a完全一致(区分大小写),则替换为b
(5)拼接单词并输出结果

go

运行

result := strings.Join(words, " ") // 用空格拼接替换后的单词切片 fmt.Println(result) // 输出最终结果

举例验证(输入样例)

plaintext

输入第1行:You want someone to help you 输入第2行:You 输入第3行:I
  • 拆分后words["You", "want", "someone", "to", "help", "you"]
  • 替换后words["I", "want", "someone", "to", "help", "you"]
  • 拼接输出:I want someone to help you(与样例输出一致)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询