【发布时间】:2014-04-30 23:15:49
【问题描述】:
我有一个布尔方法正在对字符串进行一些错误检查。 我有一个名为“numWords”= 8 的 int 类常量。 我将一个字符串传递给布尔方法,在该方法中我使用 .split 和 .length 对字符串进行字数统计。 一个名为“words”的 int 计算字符串中的单词数。 完成此操作后,我想做一个 if 语句将单词与 numWords 进行比较。 如果它们的数量相等,则返回 true,否则返回 false。 我试过 == 和 .equals 但没有任何效果。有什么想法吗?
public static final int numWords = 8;
boolean test = true;
String sentence = "I am a man";
test = check(sentence);
public static boolean check (String sentence) {
boolean x = true;
String[] s = sentence.split(" ");
int words = s.length;
if (words == numWords) {
x = true;
}
else {
x = false;
}
return x;
}
我试过 == ,它永远不会评估为假
我试过 .equals,int 不能被取消引用
我试过=,不编译不兼容的类型
我想要的是如果 words = 8 那么它等于 numWords 并返回 true。 如果 words 是 7 或 9 则不等于 numWords 并返回 false。
【问题讨论】:
-
你在哪里返回
boolean?在您的check方法中?请发布可编译的代码。 -
您的方法中的
return语句在哪里?如果没有return语句,该代码将无法编译。 -
你有什么意见?
-
注意:不会编译,因为它在这里错过了
;:boolean x = true -
为什么这甚至被否决了?此外,由于 OP 声称该方法始终返回
false,我们可以假设他在那里有一个 return 语句,但只是错过了这里的代码。
标签: java