您当前位置:设计在线网 >> JavaScript >> 浏览文章

关于byte数组的赋初值问题讲解

分享到:
本文章讲述了关于byte数组的赋初值问题讲解.

byte型

数据赋值看到有两种情况了byte[] b={65,66,67}; byte[] b={'a','b','c'};这两种都可以么,第一种是不是ascii码,那第二种呢,这个不是成了char型赋初值了

class StringMake

{

public static void main(String[] args)

{

byte[] b1={65,66,67,68,69,70};

byte[] b2={'a','b','c','d','e'};

for(int i=0;ibyte short int long

这几种类型都是java中的整数类型

你肯定对int比较了解,byte和int的区别是int是32位,byte是8位,表示的数字范围为:-128到+127

所以

第一个byte中元素都没超过范围,都以数字显示。第二个byte数组中的元素都是char类型,char类型是占16位的,一般转换为byte是由大到小,需要强制转换,但这些char并没有超出byte的范围,所以不用

在打印时会将char元素转换成对应的ascii码,具体你可以去查

toString的确是输出字母,但'a'是字符,不是字符串,两个完全不同的概念

字符串+primitive类型就是转换为字符型的最简单方法,例:

4+"" 将数字4转换为字符串4 现在的4不再是数字,而是字符串

public class ByteTest {

public static void main(String[] args) {

String str = "Hello world!";

// string转byte

byte[] bs = str.getBytes();

System.out.println(Arrays.toString(bs));

// byte转string

String str2 = new String(bs);

System.out.println(str2);

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

char[] cs = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g' };//要转换的char数组

String str = new String(cs);

byte[] bs = str.getBytes();//转换过来的byte数组 不过介于你初学 建议你用第2中方式

/*****第2中方式 ******/

byte[] bs2 = new byte[cs.length];//定义一个长度与需要转换的char数组相同的byte数组

for(int i = 0; i 数组的每一个元素转换为byte并存在上面定义的byte数组中

byte b = (byte) cs[i];//将每一个char转换成byte

bs2[i] = b;//保存到数组中

}

//现在bs2就是你要的byte数组了

}

}

推荐阅读:
Java中的关键字final函数介绍
JAVA 访问MySQL的配置 数据库问题
HTML中定义转义字符串的原因介绍
推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号