黑马程序员技术交流社区

标题: String构造函数将byte数组转换成字符串的问题 [打印本页]

作者: Matrix_heima    时间: 2015-7-16 12:22
标题: String构造函数将byte数组转换成字符串的问题
  1. public class StringDemo {
  2.         public static void main(String[] args){
  3.                 // 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
  4.                 byte[] b = new byte[1];
  5.                 for(byte i=-128; i<=127; i++){
  6.                         b[0] = i;
  7.                         String str = new String(b);
  8.                         System.out.print(str);
  9.                         // 不加判断语句,就会无限循环
  10.                         if(i==127)
  11.                                 break;
  12.                 }       
  13.         }
  14. }
复制代码


本来想看下从-128到127都转换成什么字符,结果就开始无限循环(不加判断语句),是不是因为循环到128时,强制转换成byte类型,进而导致无限循环。
作者: 紫夜灵魂    时间: 2015-7-16 13:21
因为循环里是byte 类型 取值范围就是-128-127,你的循环判断条件是<=127
无论怎么i++  i的值都在-128-127之间 所以无限循环了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2