gpt4 book ai didi

java - boolean 方法未返回正确值的问题

转载 作者:行者123 更新时间:2023-12-02 08:40:24 24 4
gpt4 key购买 nike

我正在为我的作业创建一个优先级队列,我需要调用另一个类的方法来识别单词是否以元音、字母或其他字符开头。我已经在类内部和外部测试了它们,但只有当我输入一个使用 toString() 将对象转换为字符串的临时变量时,它似乎不起作用。由于某种原因,startsWithVowel 总是返回 false,startsWithLetter 总是返回 true。

public static boolean startsWithVowel(String input) {
char W = input.charAt(0);
if ((W == 'a') || (W == 'e') || (W == 'i') || (W == 'o') || (W == 'u') || (W == 'A') || (W == 'E') || (W == 'I') || (W == 'O') || (W == 'U')) {
return true;
}
else {
return false;
}
}

public static boolean startsWithLetter(String input) {
char W = input.charAt(0);
if ((W == 'a')|| (W == 'b') || (W == 'c') || (W == 'd') || (W == 'e') || (W == 'f') || (W == 'g') || (W == 'h') || (W == 'i') || (W == 'j') || (W == 'k') || (W == 'l') || (W == 'm') || (W == 'n') || (W == 'o') || (W == 'p') || (W == 'q') || (W == 'r') || (W == 's') || (W == 't') || (W == 'u') || (W == 'v') || (W == 'w') || (W == 'x') || (W == 'y') || (W == 'z') || (W == 'A')|| (W == 'B') || (W == 'C') || (W == 'D') || (W == 'E') || (W == 'F') || (W == 'G') || (W == 'H') || (W == 'I') || (W == 'J') || (W == 'K') || (W == 'L') || (W == 'M') || (W == 'N') || (W == 'O') || (W == 'P') || (W == 'Q') || (W == 'R') || (W == 'S') || (W == 'T') || (W == 'U') || (W == 'V') || (W == 'W') || (W == 'X') || (W == 'Y') || (W == 'Z')) {
return true;
}
else {
return false;
}
}

public void enqueue(Word newEntry,int prio) {
Node<Word> newNode = new Node<Word>(newEntry,prio);
String temp = newNode.toString();

if (Words.startsWithLetter(temp)) {
if (Words.startsWithVowel(temp)) {
newNode.setPriority(1);
}
else {
newNode.setPriority(2);
}
}
else {
newNode.setPriority(3);
}
if(isEmpty()) {
firstNode = newNode;
lastNode= newNode;
numberOfElements++;
}
else {
// if (newNode.getPriority()) {}
lastNode.setNext(newNode);
lastNode = newNode;
numberOfElements++;
}
}

正如我之前所说,我可以调用其他类中的这两个方法,但只有在上面的代码行中它才不会返回正确的值。当我在主类中测试它时,每个输入的优先级都是 2,即使我可以在实际类中测试相同的单词并且它返回正确的值。

编辑:所以问题是 toString() 将对象转换为“hw4.WordPriorityQueue$Node@16f65612”的字符串。我需要做什么来重写 toString() 来说明我要放入对象中的内容?

最佳答案

我想您想返回 newEntry 中的内容。如果 Node 是内置类,则 toString() 可能会返回其他内容。 (尽管我还没有检查过这种具体情况。)您可能会尝试打印 newNode.toString() 的返回值。 (或检查文档/实现。)

关于java - boolean 方法未返回正确值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61418643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com