java中String类型的转为byte[]中遇到的一个问题,求高手解答!!

初学java,遇到以下两行代码:

String s = "Hello World!!!11233" ; //String变量

byte b[] = s.getBytes() ; //将String转换为byte[] 数组

那么,问题就是:
将String转换为byte[] 数组后,b[0] = 'H',b[1] = 'e'……那么,一个char类型的数据如何保存到一个byte的变量中呢??求高手解答啊

第1个回答  推荐于2016-11-08
输出b是字母对应的ascall码,一个一个的数字。
若想得到字符,你可以用char数组存储,不过方法就是s.getCharArray(),或者s.split('')本回答被提问者采纳
第2个回答  2014-06-09
char[] arr = {'1','2','4'};
byte[] byarr = new String(arr).getBytes();

追问

你这个我能看懂,因为是数字嘛,我那个还是不懂啊,我想知道我问的那个啊,b[0] = 'H'怎么解释啊

追答

好的。

第3个回答  2014-06-09
char 只有一个字符 不用放到byte吧 硬是要放的话直接放到byte[0]应该可以

java中String类型的如何转为byte[]
public static byte[] strToByteArray(String str) { if (str == null) { return null;} byte[] byteArray = str.getBytes();return byteArray;}

java中String 数组和byte数组的区别,为什么要互相转换??
byte[]转化为String:(较常见)由于byte数组存储的是8位8位的字节,所以转化为String要具体看默认的字符编码,比如常见的ascii编码,8个bit就可以转化为一个字节,10个大小的byte数组就可以转化为长度为10的字符串

在java中,将一个String类型的值转换为byte类型,只能占2个字节存储。
Byte.parseByte(s, 16)将s转换成有符号数 ,这一个字节能表示的范围是:-128~127,下面的代码是在搜来的代码基础上稍做了修改,调用的时候你只要把temperature传进去即可得到转换后的byte数组,byte数组的长度由temperature的值决定,你要求只能占2个字节存储的话temperature的长度就要确保不超过4,这由...

在Java中int类型强转为byte类型,强转为byte之后,数据超出byte的表述范围...
byte的最小值是-128,最大值是127,就好像一杯水的容量是有限的,当你杯子的水装满了,自然也就会溢出,127就好像是杯子最上面的那一层水,你只要加上一滴,就会溢出,流到杯子底部,而杯子的最底部就是-128。按照这种逻辑,你的i+r=156,也就是有28流到了底部,最底部是-128,被28覆盖了28,...

如何将String 转为 byte 数组
byte[] buf = "1010101010101010".getBytes();--- 你说的这个问题我也想解决呢,你是想发送-42,我是想发送+128

java里面byte数组和String字符串怎么转换?
1、不设定编码方式 String str = "Hello";byte[] srtbyte = str.getBytes();\/\/string 转 byte[]\/\/s String res = new String(srtbyte);\/\/byte[] 转 string 2、设定编码方式 String str = "hello";byte[] srtbyte = null;try { srtbyte = str.getBytes("UTF-8");\/\/string 转 ...

JAVA byte类型问题
您好,提问者:Unicode是最强大的一个编码,也是汇集全国语言最多的一个码表。GBK类型的汉字是占两个字节,而且是负数。UTF-8类型的汉字是占三个字节,也都是负数。Unicode是一种编码,1转为byte[]数组就是-2 -1 0 49

java中调用String中的getBytes()得到的是byte数组,把他赋给一个数组b...
你需要在Demo中重写object类里的方法,才能比较数组里的属性是否相等。否则equals==,比较的都是地址值,因为地址值不同得到的都是false。

☆★中文转URL遇到的byte问题,恳求解答!!
Byte得范围是-128到正127 无符号Byte才是0到255 ASCII编码内没有超过127得 一个Uncide字符占用2字节所以一个汉字就是0XFFFF 在127以外的字符不一定是汉字 Uncide集包含世界上所有得字符 问题中的进位应该是: (000)(255) + 1 = (001)(000)最后结果应该是 1000 (000)(255) + 1 = (001)(...

求教大神,java中关于String类的getBytes()方法的问题
看了下,也测试了一把,“我来了”的GBK十六进制编码是CED2 C0B4 C1CB 在Java语言中,对于byte、short等整形数据,它的控制台输出都是10进制的,getBytes()[0]的byte十六进制显示为CE,转换成10进制就是-50,所以控制台打印的是-50。

相似回答