登录
首页 >  Golang >  Go问答

如何对文件中的单词进行分段/拆分

来源:stackoverflow

时间:2024-04-09 16:06:31 458浏览 收藏

今天golang学习网给大家带来了《如何对文件中的单词进行分段/拆分》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我有一个包含很多单词的文件,我必须拆分其中一部分已经存在或在文件扫描过程中出现的单词:

文件中的一些单词是

member
members
membership
memberships

我已经尝试过这个,但我希望第一行[i](这是a)继续循环下一个单词

func split(lines []string) string {
    for i := 0; i < len(lines)-1; i++ { // position of words
        j := i + 1
        fmt.println(lines[i], lines[j])
        if strings.containsany(lines[j], lines[i]) {
            s := strings.split(dictionary[j], dictionary[i])
            fmt.println(dictionary[i], ".", s)
        }
    }
    ...
}

但它只输出

member
member.s
members.hip
membership.s

我想要的输出:

member
member.s
member.ship
members.hip
member.ships
members.hips

解决方案


对于给定的输入,以下内容会有所帮助。

func splitSegmant(prev string, cur string) string {
    if len(cur) < len(prev) || cur[:len(prev)] != prev {
        return ""
    }
    return fmt.Sprintf("%s.%s", cur[:len(prev)], cur[len(prev):])
}

func Split(lines []string) []string {
    splits := []string{lines[0]}
    for i := 0; i < len(lines); i++ {
        for j := 0; j < i; j++ {
            split := splitSegmant(lines[j], lines[i])
            if split != "" {
                splits = append(splits, split)
            }
        }
    }
    return splits
}

您可以在这里找到工作代码:playground

本篇关于《如何对文件中的单词进行分段/拆分》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>