如何使用return true语句创建布尔方法

时间:2014-09-30 21:54:50

标签: java methods binary boolean return

我需要创建一个布尔方法,它接受一个字符串并检查它是否是二进制数。如果是二进制,它应该返回true,如果它包含0和1以外的任何内容,则返回false。这是我的代码:

public static boolean CheckInputCorrect(String input) {
    int len = input.length();
    for(int i=0; i<len; i++)

        if(input.charAt(i) == '1' || input.charAt(i) == '0') {
            continue;
            return true;
        } else {
            break; 
            return false;
      }
 }

我怀疑语法错误,但无论我尝试什么,都会发现错误。 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:4)

检查每个字符,如果 0或1,则立即返回false。如果您浏览了所有字符,请返回true

public static boolean CheckInputCorrect(String input) {
    final int len = input.length();
    for (int i = 0; i < len; i++) {
        final char c = input.charAt(i);
        if (c != '1' && c != '0') {
            return false;
        }
    }
    return true;
}

不需要continuebreak语句。当然不要在另一个陈述之前使用continuebreak;通常会产生“无法访问”的编译器错误。

请注意,您也可以使用正则表达式执行此测试:

public static boolean CheckInputCorrect(String input) {
    return input.matches("[01]*");
}

如果要多次调用它,编译模式会更有效:

private static Pattern zerosOrOnes = Pattern.compile("[01]*");

public static boolean CheckInputCorrect(String input) {
    return zerosOrOnes.matcher(input).matches();
}

答案 1 :(得分:3)

如果当前字符是10,那么您还无法做出决定;到目前为止它还不错。

如果不是1且不是0,那么您可以立即返回false。完成整个String后,您可以在true循环结束后返回for

for(int i=0; i<len; i++)
{
    if(! (input.charAt(i) == '1' || input.charAt(i) == '0'))
    {
       return false;
    }
}
return true;