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

海妖

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

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

    /**
     * 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 条评论
登录 后参与评论

相关文章

TYPO3在输入值的两个单词之间添加一个空格

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

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

如何将一个句子的字符串分隔为定界符(两个单词之间有空格)?

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

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

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

使两个单词组成的字符串具有一个空格

(javascript) 如果你有一个字符串,它是一个以数字结尾的单词。如何在单词和数字之间添加空格?

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

如何在SQL中删除两个单词之间的空格(更多两个空格)

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

如何在成角度的字符串的两个单词之间删除多个空格?

如何删除字符串中两个单词之间的多余空格?

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

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

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

如何提取两个连字符之间的单词?

如何将两个单词作为输入(摩尔斯电码)并变成两个单词但它们之间有空格

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

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

将字符串拆分为两个单词的列表,重复最后一个单词

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

如何在字符串中的两个单词之间添加空格,以便总字符串长度具有特定值

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

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

如何通过与另一个集合的交集将一个集合分成两个集合?

提取两个单词之间的单词

使用while将字符串分成两个单词