golang解决单词转换

📅 2026/8/19 18:47:47
golang解决单词转换
题目描述输入一个字符串以回车结束字符串长度不超过 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与样例输出一致。