为字符串输入创建字典的最佳方法

时间:2019-04-19 15:07:15

标签: java string

问题:

想象一下,您最近为一家公司编写了一种新语言,并将所有单词收集到了词典中。与英语相似,单词可以分为名词,动词和文章。下面是字典:

  • 名词:“ abcd”,“ c”,“ def”,“ h”,“ ij”,“ cde”
  • 动词:“ bc”,“ fg”,“ g”,“ hij”,“ bcd”
  • 文章:“ a”,“ ac”,“ e”

您的任务是编写一个单词查找器,它将字符串作为输入并返回在字符串中找到的所有单词实例。输出应在输入字符串中按出现顺序显示这些单词。 如果单词从字符串的同一点开始,则应首先列出名词, 然后是动词,最后是文章。对于从字符串中的同一点开始并且属于同一类别的单词,顺序无关紧要。

我已经复制了我现在尝试过的代码。我觉得我的方法不是最好的。希望指向正确的方向

import java.util.ArrayList;

public class Dictionary {


    private String [] check(String s)
    {
        ArrayList<String> result= new ArrayList<>();

            String s1 = checkNoun(s);
            if(s1!=null) {
                result.add(s1);
        }
        String s2=checkVerb(s);
        if(s2!=null) {
            result.add(s2);
        }
        String s3=checkVerb(s);
        if(s3!=null) {
            result.add(s3);
        }

        for (String ss: result
             ) {
            System.out.println(" " +ss);
        }
        return null;
    }

    private String checkNoun(String s)
    {

        String [] nouns={"abcd","c","def","h","ij","cde"};

        for (int i=0;i<nouns.length;i++)
        {
            if (s.equals(nouns[i]))
            {
                return nouns[i];
            }
        }
        return null;
    }
    private String checkVerb(String s)
    {
        String [] verbs={"bc","fg","g","hij","bcd"};

        return null;
    }
    private String checkArticle(String s)
    {
        String [] nouns={"a","ac","e"};
        return null;
    }

    public static void main(String[] args) {


        Dictionary dictionary= new Dictionary();
        dictionary.check("abcd");

    }
}

示例/预期输出:

输入= "abcd",应返回以下列表:

[abcd a bc bcd c]或[abcd a bcd bc c]

输入= "hij",应返回以下列表:

[h hij ij]

输入= "hijhij",应返回以下列表:

[h hij ij h hij ij]

输入= "gc",应返回以下列表:

[g c]

Input = "dbd",应返回以下列表: []

0 个答案:

没有答案