int变量比较返回一个布尔值

时间:2014-03-23 18:30:10

标签: java

我有一个布尔方法,它正在对字符串进行一些错误检查。 我有一个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。

4 个答案:

答案 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值。或者制作另一种方法。