我正在尝试这段代码编写练习而且我迷路了!
练习是:
完成将两个字符串和一个布尔值作为输入的方法。如果布尔值为true,则此方法比较前两个字符串,忽略大小写(大写/小写)。如果两个字符串长度相同,则认为它们是相等的忽略大小写,并且两个字符串中的相应字符等于忽略大小写。
如果boolean为false,则此方法应比较两个字符串,如果第一个String表示与第二个字符串相同的字符序列,则返回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);
}
}
它甚至没有编译,但即使它确实如此,我相信它不会起作用。
答案 0 :(得分:5)
你正在倒退。主题说:如果布尔值为真,那么执行此操作,否则执行此操作。所以你应该以同样的方式编程:
if (isIgnoreCase) {
return ...
}
else {
return ...
}
剩下的就是练习。你应该能够自己解决这个问题。
答案 1 :(得分:2)
我认为所请求的解决方案是以下方法:
public boolean compareTwoStrings(String a, String b, boolean isIgnoreCase)
{
if (isIgnoreCase)
{
return a.equalsIgnoreCase(b);
}
return a.equals(b);
}
你的方法不能编译,因为Java编译器假设如果条件优先于false
,那么在某些情况下会出现这种情况。因此,编译器无法确保至少有一个return
语句可以访问。
答案 2 :(得分:0)
我认为这就是你要找的东西。
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");
}
}
答案 3 :(得分:0)
这可能是您问题的解决方案:
public boolean compareTwoStrings (String a, String b, boolean isIgnoreCase){
if (isIgnoreCase)
return (a.toLowerCase()).equals(b.toLowerCase());
else
return a.equals(b);
}