亲爱的程序员你好,
我有一个String String input =“30.09.1993”;
然后我想将这个字符串中的所有数字保存在一个数组中(只有数字!). “.”在索引2和5所以我想在我的循环中使用if语句跳过我的字符串的这些部分.
我解决了我的问题,一切正常,但我对&&的逻辑感到困惑.和||操作符.
这是我的工作代码:
String input = "30.09.1993";
int[] eachNumbers = new int[8];
int x = 0;
for(int i = 0; i <= 9; i++){
if(i != 2 && i != 5){
eachNumbers[x] = Integer.parseInt(input.substring(i, i+1));
x++;
}
}
这是不起作用的代码:
String input = "30.09.1993";
int[] eachNumbers = new int[8];
int x = 0;
for(int i = 0; i <= 9; i++){
if(i != 2 || i != 5){
eachNumbers[x] = Integer.parseInt(input.substring(i, i+1));
x++;
}
}
这两个代码片段之间的唯一区别是if子句中的运算符.
我认为这些操作符的结果是:
&安培;&安培;操作符:
false + false = false
true + false = false
false + true = false
true + true = true
||操作符:
false + false = false
true + false = true
false + true = true
true + true = true
所以在我看来第二个代码片段应该工作,第一个应该抛出一个NumberFormatException.但事实并非如此.
我确信对于我正在做的事情有一些更好的解决方案,但我的问题只是关于我的if语句中的逻辑.有人能解释一下这背后的逻辑吗?我完全感到困惑,并感谢每一个有帮助的答案.
问候
Lukas Warsitz