java - 关于位运算的判断 求大神看一下代码 遇到个有点奇怪的事
本文介绍了java - 关于位运算的判断 求大神看一下代码 遇到个有点奇怪的事的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
String string=Integer.toBinaryString(11);
a=string.toCharArray();
length=a.length;
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
System.out.println("right to one "+string+" string's length"+string.length());
/*for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}*/
if (length==4) {
if (a[1]==1) {
if (a[2]==1) {
if (a[3]==1) {
System.out.println("十字键一定key LR 一定是key");
}else {
System.out.println("十字dpad LR一定key");
}
}else {
if (a[3]==1) {
System.out.println("十字--touch LR一定key");
}else {
System.out.println("LR must key");
}
}
}else {
System.out.println("a[2]"+a[2]);
if (a[2]==1) {
if (a[3]==1) {
System.out.println("十字一定key LR touch");
}else {
System.out.println("十字dpad LR touch");
}
}else {
if (a[3]==1) {
System.out.println("十字--touch LR--touch");
}else {
System.out.println("是不是这里LR--touch");
}
}
}
}
传进去的是11 照理说最后输出应该是 十字一定key LR touch 可是最后偏偏输出的是 是不是这里LR--touch 上边if中输出的a[2] 输出也是1 啊 为什么在if判断中直接给跳过了呢 这是怎么回事啊 还有我在if(a[1]==1)的else改成 else if(a[1]==0) 这段代码就不会执行else if(a[1]==0)这一句 直接停止了
解决方案
把所有a[x]==1
的比较改为a[x]=='1'
,1
和'1'
不是一回事。
这篇关于java - 关于位运算的判断 求大神看一下代码 遇到个有点奇怪的事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文