我不确定为什么它认为这是一个变量。
public boolean check(String arg) {
if (arg.length = 4) {
return true;
}
}
另外,如果我想添加另一个条件,例如字符串的长度必须等于4并且必须有一个整数作为第一个字符,我将如何链接两个'if'语句?
答案 0 :(得分:4)
length()
是String
的方法,而不是变量。此外,您还需要使用==
来比较arg.length()
和4
的结果,=
用于分配:
public boolean check(String arg) {
if (arg.length() == 4){
return true;
}
}
答案 1 :(得分:2)
您需要使用' =='运算符将字符串的长度与常量进行比较。
return arg.length() == 4;
使用以下方法组合逻辑表达式:
|| for 'or'
&& for 'and'
您可以使用Character.isDigit
查看第一个字符是否为数字。给你最后的表达:
return arg.length() == 4 && Character.isDigit(arg.charAt(0));
答案 2 :(得分:2)
问题第一部分的答案是:
字符串的长度不是字段。使用arg.length()
获取字符串的长度。错误消息是"无法找到变量长度",因为arg.length
正在尝试访问String API中不存在的String
字段。
您可以使用==
或equals
方法进行比较,而不是=
。 =
运算符是赋值运算符。
如果我想添加另一个条件,例如字符串的长度必须等于4并且必须有一个整数作为第一个字符,我将如何链接两个'如果'语句?
有两个答案:
if (arg.length() == 4 && Character.isDigit(arg.charAt(0)) {
return true;
}
// do more stuff
或
if (arg.length() == 4) {
if (Character.isDigit(arg.charAt(0)) {
return true;
}
}
// do more stuff
在此示例中,第一个表单更具可读性(对于有经验的Java程序员),因此建议使用。在更复杂的示例中,使用嵌套的if
语句可能更好。
还有其他几点要做:
public boolean check(String arg) {
if (arg.length() == 4) {
return true;
}
}
是编译错误。 Java编译器将告诉您(实际上)check
方法的返回路径之一不返回值。如果长度不是4
,会发生什么?代码没有说明是否要返回true
或false
。
如果我们重写如下:
public boolean check(String arg) {
if (arg.length() == 4) {
return true;
} else {
return false;
}
}
代码现在将编译。但是,任何有经验的Java程序员都会指出你已经使用了5行代码来做一些只能在一行中完成的事情。
public boolean check(String arg) {
return arg.length() == 4;
}
答案 3 :(得分:0)
您可以使用逻辑运算符执行任务。
return arg.length() == 4 && Character.isDigit(arg.charAt(0));
另外,为了清理问题,您可以返回if语句,而不是测试条件是否为真并返回true。