我有一个关于我需要完成的作业的问题。 编写一个菜单驱动的程序,它接受单词及其含义,或以字典顺序显示单词列表(即在字典中)。当要将条目添加到字典时,必须先将该单词作为一个字符串输入,然后将该含义输入为单独的字符串。一个单词可能有多个含义,可以在不同的时间输入。发生这种情况时,将每个连续的含义放在单独的行上。这个新的含义必须以破折号开头。例如,如果您按以下顺序输入以下单词及其含义:Library,School,Cup和School,那么您的输出应该是显示,如图1所示。
使用链表的概念来执行此练习。您至少需要以下课程: •WordMeaning类,包含单词的名称及其含义。 •WordMeaningNode类,用于创建信息节点及其链接字段。 •一个WordList类,用于创建和维护单词及其含义的链接列表。 •测试类的Dictionary类。
问题涉及第二个子弹。我不确定如何为WordMeaningNode创建构造函数。这就是我到目前为止所做的:
import java.lang.*;
import java.util.*;
public class WordMeaningNode
{
String information;
WordMeaningNode locale;
public WordMeaningNode(WordMeaning data)
//WordMeaning is a class that takes two strings(Word and definition) and stores it.
//Entry is a method that returns the strings stored in WordMeaning.
{
information = data.Entry();
locale = null;
}
public String getMeaning()
{
return information;
}
public WordMeaningNode getNext()
{
return locale.getNext();
}
}
答案 0 :(得分:0)
一些事情:
首先,我认为你最好传入data.entry()产生的String。那就是你可以用以下方式创建构造函数:
public WordMeaningNode(String entry){
int index = entry.indexOf(',') + 1; //Assuming your String is comma delimited.
information = entry.substring(0, index);
String next = entry.substring(index);
if(next.isEmpty()){
locale = null;
} else {
locale = new WordMeaningNode(next);
}
}
其次,你的getNext()方法是否正常工作?似乎总会给出一个空指针异常。
祝你好运!