我有一个布尔方法,它正在对字符串进行一些错误检查。 我有一个int类常量叫做" numWords" = 8。 我将一个字符串传递给布尔方法,在那里我使用.split和.length对字符串进行字数统计。 一个名为" words"计算字符串中的单词数。 完成此操作后,我想做一个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。 如果单词是7或9,则它不等于numWords并返回false。
答案 0 :(得分:1)
我猜你真正想要的是返回一个布尔值而不是指定一个布尔值。
public static boolean check (String sentence) {
String[] s = sentence.split(" ");
int words = s.length;
return words == numWords
}
答案 1 :(得分:1)
您没有有效的语法(任何语句没有分号无效),而您实际上并没有返回任何内容。
如果没有任何程序的正确性,请在声明并实例化x
(以及boolean x = true;
)后添加分号,并在方法的底部添加return x;
。或者,您可以简单地执行此操作:
return s.length == numWords;
不需要if-checks,如果它们是等效的,则为true,否则为false。
答案 2 :(得分:0)
首先,如果
中缺少冒号,您的代码将无法编译boolean x = true;
此外,由于您的方法声明是
public static boolean check (String sentence)
你必须返回一个布尔值:
return some_boolean;
最终的代码是:
public static boolean check (String sentence) {
String[] s = sentence.split(" ");
return s.length == numWords;
}
注意:强>
该行
return words == numWords;
将返回比较结果boolean
的{{1}}。
答案 3 :(得分:0)
让它返回你的单词的数量,然后在方法之外检查它是否等于你的numWords
值。或者制作另一种方法。