一位采访者最近问我这个问题:给定三个布尔变量a,b和c,如果三个中至少有两个为真,则返回true.
我的解决方案是:
boolean atLeastTwo(boolean a, boolean b, boolean c) {
if ((a && b) || (b && c) || (a && c)) {
return true;
}
else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
他说这可以进一步改善,但如何?
根据文档,该方法String.valueOf(Object obj)返回:
如果参数是
null,那么一个字符串等于"null"; 否则,obj.toString()返回值.
但是当我尝试这样做时怎么样:
System.out.println("String.valueOf(null) = " + String.valueOf(null));
Run Code Online (Sandbox Code Playgroud)
它会引发NPE而不是?(如果你不相信,请亲自尝试!)
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
怎么会发生这种情况?文档对我说谎吗?这是Java中的一个主要错误吗?
以下代码抛出NullPointerException:
int num = Integer.getInteger("123");
Run Code Online (Sandbox Code Playgroud)
我的编译器是否getInteger在null上调用,因为它是静态的?这没有任何意义!
发生了什么?
我正在经历一些练习问题,我看到了这段代码:
#include <stdio.h>
#include <string.h>
int main(void) {
char* s = "357";
int sum = 0;
int i = 0;
for (i = 0; i < strlen(s); i++) {
sum += s[i] - 48;
}
printf("Sum is %d", sum);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释代码的作用,尤其是48部分的减法吗?
我们正在学习常规语言和正则表达式之间的区别,老师解释了这种语言
a^n b^n
Run Code Online (Sandbox Code Playgroud)
不常见,但她说大多数正则表达口味都可以匹配
a^n A^n
Run Code Online (Sandbox Code Playgroud)
她为我们额外的学分作业问题提出了这个问题.我们现在已经苦苦挣扎了几天,并且可以真正使用一些指导.
java ×3
api-design ×2
ascii ×1
autoboxing ×1
boolean ×1
c ×1
char ×1
encoding ×1
integer ×1
null ×1
overloading ×1
regex ×1