Java 如何编写此返回语句,这样我就不会';不返回空值?
我不知道在哪里或如何放置我的返回语句,所以我得到了一个链接列表。链表的返回是一个循环。我需要有一个返回声明以外,但不能让乳头的工作。我只是不断得到空返回。尝试输入else语句,但不起作用。我觉得这是一个简单的解决方案,但无法解决。我知道在这段代码中总是读取返回null,只是不知道如何将其放置,这样它就不会总是返回null 方法是接收一个数字字符串,在键盘上获取附加到这些数字的字母,然后将这些字符串的可能组合放入一个方法中,该方法查找单词并返回这些单词的链接列表 只是无法计算方法中的return语句Java 如何编写此返回语句,这样我就不会';不返回空值?,java,return,Java,Return,我不知道在哪里或如何放置我的返回语句,所以我得到了一个链接列表。链表的返回是一个循环。我需要有一个返回声明以外,但不能让乳头的工作。我只是不断得到空返回。尝试输入else语句,但不起作用。我觉得这是一个简单的解决方案,但无法解决。我知道在这段代码中总是读取返回null,只是不知道如何将其放置,这样它就不会总是返回null 方法是接收一个数字字符串,在键盘上获取附加到这些数字的字母,然后将这些字符串的可能组合放入一个方法中,该方法查找单词并返回这些单词的链接列表 只是无法计算方法中的return语
public LinkedList bfs_search(String numberEntered) {
//use a queue for all the unsearched combinations to go
Queue<String> q = new LinkedList<String>();
q.add("");
String possibleWord = null;
//loop through each number entered
for(int i = 0; i < numberEntered.length(); i++) {
//get the letters on the keypad for current number
String lettersOnKeypadNumber = T9keypad[numberEntered.charAt(i) - ASCII_ZERO];
int len = q.size();
//loop while there are letter sequences in the queue. Note len-- is same as len=len-1 so loop until only one item left in queue (the blank item inserted above)
while(len -- > 0) {
String letterSequenceFromQ = q.remove();
//loop through each letter on the keypad number, add it to the letter sequence pulled from queue and search for that letter sequence as a word in the trie
for(int j = 0; j < lettersOnKeypadNumber.length(); j++) {
possibleWord = letterSequenceFromQ + lettersOnKeypadNumber.charAt(j);
//q.add(tmpStr);
if(search(possibleWord) && possibleWord.length() == numberEntered.length()) {
//found it!
return possibleWords(possibleWord);
} else {
//letter sequence is not a word, add it to the queue for possible word when get the next set of letters for the next keyed number
q.add(possibleWord);
}
}
}
}
return null;
}
public LinkedList bfs_search(字符串numberrentered){
//对所有未搜索的组合使用队列
队列q=新的LinkedList();
q、 加上(“”);
字符串possibleWord=null;
//循环检查输入的每个数字
对于(int i=0;i0){
String letterSequenceFromQ=q.remove();
//循环浏览键盘号码上的每个字母,将其添加到从队列中提取的字母序列中,并在trie中作为单词搜索该字母序列
对于(int j=0;j
您可以在for循环之后添加return语句您的方法签名是一个契约——您将返回一个链接列表。在这种情况下,您需要做两件事之一——返回一个链表,不管是否为空,或者如果确实存在项数大于0的链表,则抛出一个异常
q.add(“”)除了可以使用len--作为循环条件外,对您没有任何帮助。使用q.isEmpty作为控件:您要么离开循环,要么向队列添加字符串
因为您要结束if子句中的循环,所以从q.add中删除else{}
如果您真的想从三重嵌套循环返回,只需抛出一个异常并在调用函数中处理它。否则,将从possibleWords()返回的值赋给本地引用,并返回该值
使用一个字符的变量并没有让你的生活变得更轻松,但这是一件主观的事情:)返回一个空的链接列表?@Shark否,在这个方法中调用的方法也返回一个我试图返回的链接列表。是的,但是你可以用
返回新的链接列表()
@DuncanJones好的,你的意思是为方法中返回的链接列表创建一个新的链接列表并返回该链接列表?虽然(len-->0)
看起来像个bug,你不需要重新评估q.size()
?但是调用方法possibelWords()需要在if语句中?否?我想他说的是返回null代码>statement@DeadlyJesus我的错,那就是我的地方,把它搬走了。这样,它仍然总是返回null,而不是if语句中的返回。