访问文件内容中的每一个单词
我正在做一个项目,希望能够访问文件中的单词,而不是单独的字符,例如,"Welcome to my world" 应拆分为 "Welcome"、"to"、"my"、"world"。
package main
import ("fmt"
"os"
)
func main(){
file, err := os.ReadFile("sample.txt")
if err != nil {
fmt.Println("An error occures when trying to read the file")
}
for i := 0; i < len(file); i++{
fmt.Println(string(file[i]))
}
}
解决方案
说实话,这件事有不止一种实现方式。凭直觉,你可以把整个文件读入内存,然后把它分割成一个个独立的字符串单词。
file, err := os.ReadFile("sample.txt")
if err != nil {
fmt.Println("An error occurred when trying to read the file")
return
}
text := string(file)
words := strings.Fields(text)
for _, word := range words {
fmt.Println(word)
}
或者,你也可以像其他评论者所说的那样,对内容进行缓冲和分块处理。
file, err := os.Open("sample.txt")
if err != nil {
fmt.Println("Error opening file")
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。