[英]Comparing two strings with boolean?
我正在尝试进行此代码编写练习,但我很迷茫!
练习是:
完成将两个String和一个布尔作为输入的方法。 如果布尔值为true,则此方法将比较前两个String,而忽略大小写考虑(大写/小写)。 如果两个字符串的长度相同,则认为它们相等而忽略大小写,并且两个字符串中的相应字符忽略大小写相等。
如果布尔值为false,则此方法应比较两个String,如果第一个String表示与第二个String相同的字符序列,则返回true。
注意: 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);
}
}
它甚至不编译,但是即使可以编译,我也确信它不会起作用。
您正在倒退。 主题说:如果布尔值是true,则执行此操作,否则执行该操作。 因此,您应该以相同的方式对其进行编程:
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");
}
}
这可能是您的问题的解决方案:
public boolean compareTwoStrings (String a, String b, boolean isIgnoreCase){
if (isIgnoreCase)
return (a.toLowerCase()).equals(b.toLowerCase());
else
return a.equals(b);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.