【问题标题】:Comparing two strings with boolean?将两个字符串与布尔值进行比较?
【发布时间】:2013-04-06 16:04:43
【问题描述】:

我正在尝试这个代码编写练习,我很迷茫!

练习是:

完成以两个字符串和一个布尔值作为输入的方法。如果布尔值为真,则此方法比较前两个字符串,忽略大小写考虑(大写/小写)。如果两个字符串的长度相同,则认为它们相等忽略大小写,并且这两个字符串中的对应字符是相等的忽略大小写。

如果布尔值是假的,这个方法应该比较两个字符串,如果第一个字符串和第二个字符串表示相同的字符序列,则返回真,否则返回假。

注意: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);
    }
}

它甚至不编译,但即使它编译了,我肯定它不会工作。

【问题讨论】:

  • 你应该首先检查布尔值,然后返回适当方法的结果,你已经得到了相反的结果。此外,如果 (myBoolean) 做某事,则像这样检查布尔值,否则做其他事情

标签: java boolean equals


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    您的方法无法编译,因为 Java 编译器假定在某些情况下,如果条件评估为 false。因此,编译器无法确保至少可以访问一个return 语句。

    【讨论】:

      【解决方案3】:

      这可能是您问题的解决方案:

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

      【讨论】:

        【解决方案4】:

        我想这就是你要找的。​​p>

        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");
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多