比较两个字符串与布尔?

我正在尝试这个代码写作练习,我很失落!

这个练习是:

完成将两个字符串和一个布尔值作为输入的方法。 如果布尔值为true,则此方法比较前两个字符串,忽略大小写(大写/小写)。 如果两个字符串的长度相同,则两个字符串被忽略大小写相等,并且两个字符串中的相应字符忽略大小写。

如果布尔值为false,则此方法应比较两个字符串,如果第一个字符串表示与第二个字符串相同的字符序列,则返回true,否则返回false。

注意: compareTwoStrings("HELLO", "", false)应该返回false。

这是我的尝试:

public boolean compareTwoStrings (String a, String b, boolean isIgnoreCase) 
{ 
    if (a.equalsIgnoreCase(b)) {
        return (isIgnoreCase==true);
    }
    else if (a.equals(b)) {
       return (isIgnoreCase==false);
    }
}

它甚至没有编译,但即使它确实,我相信它不会工作。


你正在倒退。 主题说:如果布尔值为真,那么做,否则,那么做。 所以你应该用同样的方式编程:

if (isIgnoreCase) {
    return ...
}
else {
    return ...
}

剩下的就是练习。 你应该可以自己弄清楚。


我认为所要求的解决方案是以下方法:

public boolean compareTwoStrings(String a, String b, boolean isIgnoreCase)
{
    if (isIgnoreCase)
    {
        return a.equalsIgnoreCase(b);
    }

    return a.equals(b);
}

你的方法不能编译,因为Java编译器假设某些情况下,如果条件评估为false 。 因为编译器无法确保至少有一个return语句可到达。


我认为这是你正在寻找的。

public static void myMethod(String str, String str2, boolean bool) {

    if (bool) {
        str = str.toLowerCase();
        str2 = str2.toLowerCase();
        if (str.equals(str2))
            System.out.println("strings equal");
    }
    else {
        System.out.println("false condition");
    }
}
链接地址: http://www.djcxy.com/p/76053.html

上一篇: Comparing two strings with boolean?

下一篇: CSS Flexbox: Center container with left