String str = "HM程序员a";
byte[] bys = str.getBytes("GBK");
int num = 0;
boolean blns = false; // 初始值 相当于阀门 决定了num的值
for (int i = 0; i < 4; i++) {
if (bys[i] < 0 && !blns) { // 判断:中文字符转换了字节后 是为负整数的 && 取blns的相反值
blns = true;
} else {
num++;
blns = false;
}
}
System.out.println(num);
我的问题是
if (bys[i] < 0 && !blns) 这个为什么可以成立,!blns的值不是一直都是false吗,那!blns就是true,怎么可能会走到这一步呢?这个条件应该是没办法进去的吧,可运行结果又是可以进去的,我哪里忽略了什么? |
|