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 < 0 && !blns) { // 判断:中文字符转换了字节后 是为负整数的 && 取blns的相反值 blns = true; } else { num++; blns = false; } } System.out.println(num); 我的问题是 if (bys < 0 && !blns) 这个为什么可以成立,!blns的值不是一直都是false吗,那!blns就是true,怎么可能会走到这一步呢?按这个条件应该是没办法进去的吧,可运行结果又是可以进去的,我哪里忽略了什么? |
z332406259 发表于 2016-4-12 09:56
if (bys < 0 && !blns) { // 判断:中文字符转换了字节后 是为负整数的 && 取blns的相反值
当第一个 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |