问题:
想象一下,您最近为一家公司编写了一种新语言,并将所有单词收集到了词典中。与英语相似,单词可以分为名词,动词和文章。下面是字典:
您的任务是编写一个单词查找器,它将字符串作为输入并返回在字符串中找到的所有单词实例。输出应在输入字符串中按出现顺序显示这些单词。 如果单词从字符串的同一点开始,则应首先列出名词, 然后是动词,最后是文章。对于从字符串中的同一点开始并且属于同一类别的单词,顺序无关紧要。
我已经复制了我现在尝试过的代码。我觉得我的方法不是最好的。希望指向正确的方向
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"
,应返回以下列表:
[]