如何通过在相邻字符之间添加空格将一个单词分成两个单词

海妖

我正在尝试使用单词:拼写错误,并通过在相邻字符之间添加“”(空格)将单词拆分为两个单词,并希望得到单词:结果是拼写错误尝试使用不同的代码,但没有看到任何指导,将有所帮助。

适用于其他建议的代码仅供参考。*请注意,注释掉的代码是我一直在试图获得正确结果的原因。

    /**
     * Returns possible suggestions for misspelled word
     * 
     * @param tree The Trie that will be checked
     * @param word The word in trie that is checked
     */
    public static void suggest(TrieNode tree, String word) {
        Set<String> result = new HashSet<>();
        System.out.println("Suggestions: ");
        // Remove a character
        for (int i = 0; i < word.length(); ++i)
            result.add(word.substring(0, i) + word.substring(i + 1));
        // Swap two consecutive characters
        for (int i = 0; i < word.length() - 1; ++i)
            result.add(word.substring(0, i) + word.substring(i + 1, i + 2) + word.substring(i, i + 1)
                    + word.substring(i + 2));
        // Replace a character with other
        for (int i = 0; i < word.length(); ++i)
            for (char c = 'a'; c <= 'z'; ++c)
                result.add(word.substring(0, i) + String.valueOf(c) + word.substring(i + 1));
        // Add a new character
        for (int i = 0; i <= word.length(); ++i)
            for (char c = 'a'; c <= 'z'; ++c)
                result.add(word.substring(0, i) + String.valueOf(c) + word.substring(i));
        // Split word into pair of words by adding a " " between adjacent pairs
        // Need help here
        for (int i = 0; i < word.length(); ++i)
            for (char c = ' '; c <= ' '; ++c)
                if (search(tree, word.substring(0, i)) && search(tree, word.substring(i)) == true)
                     result.add(word.substring(0, i) + String.valueOf(c) + word.substring(i));


        ArrayList<String> res = new ArrayList<>(result);
        int j = 0;
        for (int i = 0; i < result.size(); i++)
            if (search(tree, res.get(i))) {
                if (j == 0)
                    System.out.print("[");
                System.out.print(res.get(i) + ",");
                System.out.print("");
                j++;
            }
         System.out.print("]" + "\n");
    }
吉尔伯特·勒布朗克

我编写了一个最小的,可运行的代码段,如果在词典中找到了两个单词段,则会拆分单词。

这是我的测试结果

miss spelling
apple

这是代码。重要的方法是splitWord方法。

package com.ggl.testing;

import java.util.ArrayList;
import java.util.List;

public class DoubleWord implements Runnable {

    public static void main(String[] args) {
        new DoubleWord().run();
    }

    @Override
    public void run() {
        Dictionary dictionary = new Dictionary();
        System.out.println(splitWord("missspelling", dictionary));
        System.out.println(splitWord("apple", dictionary));
    }

    public String splitWord(String word, Dictionary dictionary) {
        for (int index = 1; index < word.length(); index++) {
            String prefix = word.substring(0, index);
            if (dictionary.isWordInDictionary(prefix)) {
                String suffix = word.substring(index);
                if (dictionary.isWordInDictionary(suffix)) {
                    return prefix + " " + suffix;
                }
            }
        }

        return word;
    }

    public class Dictionary {
        private List<String> words;

        public Dictionary() {
            this.words = setWords();
        }

        public boolean isWordInDictionary(String word) {
            return words.contains(word);
        }

        private List<String> setWords() {
            List<String> words = new ArrayList<>();
            words.add("apple");
            words.add("miss");
            words.add("spelling");
            words.add("zebra");

            return words;
        }
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在两个单词之间添加空格

来自分类Dev

删除字符串中的一个单词(或两个空格之间)

来自分类Dev

根据一个单词将一个文件分成两个文件

来自分类Dev

Java。在每个空格处将多个单词字符串分成两个单词字符串

来自分类Dev

如何检查一个单词中合并两个相邻的重复字符是否可以生成一个特定的单词?

来自分类Dev

重新表达表情,使两个单词之间有一个空格

来自分类Dev

如何删除两个单词之间的空格?

来自分类Dev

如何删除其他两个单词/字符之间的两个单词/字符?

来自分类Dev

如何在不选择下一个单词的情况下在两个单词之间包含可选空格?

来自分类Dev

正则表达式只能匹配字符或空格或两个单词之间的一个点,不允许双精度空格

来自分类Dev

正则表达式只能匹配字符或空格或两个单词之间的一个点,不允许双精度空格

来自分类Dev

如何从一行中提取一个/两个/三个相邻单词?

来自分类Dev

PHP如何确定一个单词是否在字符串的两个开放引号之间?

来自分类Dev

在两个单词之间替换一个字符

来自分类Dev

Python-如何通过空格将标点符号与单词分开,在标点符号和单词之间仅留一个空格?

来自分类Dev

在字符串中的每个单词之间添加一个空格

来自分类Dev

将一个句子拆分成两个单词,并将其值存储在HashMap中作为键

来自分类Dev

在每个单词前添加“ @”,然后在每个单词之间添加一个空格(JavaScript)?

来自分类Dev

如何通过使用空格作为分隔符将字符串分成5个单词的部分

来自分类Dev

如何将一个大字符串合并为一个单词之间没有空格的字符串?

来自分类Dev

在两个字符之间匹配一个单词

来自分类Dev

匹配两个单词之间的所有内容,而匹配的最后一个单词是可选的

来自分类Dev

JavaScript Regex在两个单词之间选择一个单词

来自分类Dev

REGEX捕获一个句子的两个单词之间的每个n字母单词

来自分类Dev

我如何从字符串中得到两个特定单词的下一个单词?

来自分类Dev

如何将文件中的两个单词放入数组的一个索引中?

来自分类Dev

从两个单词的字符串中提取一个单词

来自分类Dev

首字母大写的 Jscript 正则表达式,由两个单词组成,单词之间有一个空格

来自分类Dev

将两个单词作为一个单词进行处理

Related 相关文章

  1. 1

    如何在两个单词之间添加空格

  2. 2

    删除字符串中的一个单词(或两个空格之间)

  3. 3

    根据一个单词将一个文件分成两个文件

  4. 4

    Java。在每个空格处将多个单词字符串分成两个单词字符串

  5. 5

    如何检查一个单词中合并两个相邻的重复字符是否可以生成一个特定的单词?

  6. 6

    重新表达表情,使两个单词之间有一个空格

  7. 7

    如何删除两个单词之间的空格?

  8. 8

    如何删除其他两个单词/字符之间的两个单词/字符?

  9. 9

    如何在不选择下一个单词的情况下在两个单词之间包含可选空格?

  10. 10

    正则表达式只能匹配字符或空格或两个单词之间的一个点,不允许双精度空格

  11. 11

    正则表达式只能匹配字符或空格或两个单词之间的一个点,不允许双精度空格

  12. 12

    如何从一行中提取一个/两个/三个相邻单词?

  13. 13

    PHP如何确定一个单词是否在字符串的两个开放引号之间?

  14. 14

    在两个单词之间替换一个字符

  15. 15

    Python-如何通过空格将标点符号与单词分开,在标点符号和单词之间仅留一个空格?

  16. 16

    在字符串中的每个单词之间添加一个空格

  17. 17

    将一个句子拆分成两个单词,并将其值存储在HashMap中作为键

  18. 18

    在每个单词前添加“ @”,然后在每个单词之间添加一个空格(JavaScript)?

  19. 19

    如何通过使用空格作为分隔符将字符串分成5个单词的部分

  20. 20

    如何将一个大字符串合并为一个单词之间没有空格的字符串?

  21. 21

    在两个字符之间匹配一个单词

  22. 22

    匹配两个单词之间的所有内容,而匹配的最后一个单词是可选的

  23. 23

    JavaScript Regex在两个单词之间选择一个单词

  24. 24

    REGEX捕获一个句子的两个单词之间的每个n字母单词

  25. 25

    我如何从字符串中得到两个特定单词的下一个单词?

  26. 26

    如何将文件中的两个单词放入数组的一个索引中?

  27. 27

    从两个单词的字符串中提取一个单词

  28. 28

    首字母大写的 Jscript 正则表达式,由两个单词组成,单词之间有一个空格

  29. 29

    将两个单词作为一个单词进行处理

热门标签

归档