java中byte数组怎么转换成string类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中byte数组怎么转换成string类型相关的知识,希望对你有一定的参考价值。

可以用String的构造方法String(byte[] bytes,int offset,int length),或者普通的构造方法String(byte[] bytes),用法如下:

public class ByteArrayToString 

public static void main(String[] args) 
byte[] bytes=new byte[]'a','b','c','d','e','f','g';

byteArrayToString(bytes,null);//输出abcdefg
byteArrayToString(bytes, "2");//输出cdefg


public  static String byteArrayToString(byte[] bytes,String offset)

String str="";
if(offset!=null)
str = new String(bytes,Integer.parseInt(offset),5);//这个方法可以精确的截取字符串
else
str= new String(bytes);//普通的字符串构造方法

System.out.println(str);
return str;


参考技术A String str = new String( bytes);

string怎么转化为byte

要求输入一个数 保存在命名为response的string里 然后把string转化为byte并且输出 求java帝 刚学不怎么会

String s = "fs123fdsa";//String变量

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

String t = new String(b);//bytep[]转换为String

“字符”是由数字来表示的

先来重新了解一下计算机是如何处理“字符”的,这个原理是必须记住的,特别是在用JAVA写程序的时候,万万不可模糊。计算机把任何东西都用数字来表示,“字符”也不例外。比如要显示一个阿拉伯数字“3”,在pc里,其实并不是仅仅用一个数字3来代表我们要写的“3”,而是以十六进制的0x33来代表,包括放在内存或者是写到文件里,其实都是写着0x33的,不信可以编辑一个文本文件,写一个“3”,然后用ultraEdit看他的原始码。

一切“字符”都必定用数字+编码表表示。 
这时候,有一个问题:为什么一定要用0x33来代表“3”呢?而不用0x43来代表呢?或者是直接用0x03来代替?其实用什么来代表都可以,只不过大家都习惯了用ASCII编码表(是美国国家信息交换表)来确定各字符应该是用什么数字代表的。同样,为了表示中国字,我国也指定了中文的编码表,其中最广泛使用的是GB2312。比如中文的“当”字,就是用0xB5,

0xB1这两个八位的数字来表示的。所以如果显示字符的程序不知道一列数字到底是按什么编码表编码的,他也无法去判断到底这些是什么文字。如果随便用一个不对的编码表来处理这些数字,处理出来的字符很可能完全是错的。比如在英文系统上,没有GB2312编码表,送一个0xB5,0xB1,就傻傻的当作ASCII来处理(操作系统通常都有自己默认的编码表),结果显示出来就是两个奇怪的符号,因为这两个字在ASCII表里就是那两个符号。同样在繁体中文系统里,编码表是BIG5,显示出来也是一个奇怪的中文,不是“当”字。


参考技术A

string 转 byte[]的方法:

byte[] midbytes=isoString.getBytes("UTF8");

//为UTF8编码

byte[] isoret = srt2.getBytes("ISO-8859-1");

//为ISO-8859-1编码

其中ISO-8859-1为单字节的编码

byte[]转string的方法:

String isoString = new String(bytes,"ISO-8859-1");

String srt2=new String(midbytes,"UTF-8");

(PS:在网络传输或其它应用中常常有同一的中间件,假设为String类型。因此需要把其它类型的数据转换为中间件的类型。将字符串进行网络传输时,如socket,需要将其在转换为byte[]类型。这中间如果采用用不同的编码可能会出现未成预料的问题,如乱码。)

参考技术B String testStr = "我是中国人";
 
byte b[] = testStr .getBytes();//String转换为byte[] 

就这样就可以完成!

参考技术C 网上查到的。。。
String s=你的字符串
byte b = Byte.parseByte(s, 16);
String a = Integer.toHexString(b & 0xFF);
System.out.println(a);

参考资料:http://zhidao.baidu.com/question/93775118.html

参考技术D class Demo
public static void main(String[] args)
String response = new String(args[0]);
byte[] bytes = new byte[];
byte[] bytes = response.getBytes();
for(byte b : bytes)
System.out.print(b);

以上是关于java中byte数组怎么转换成string类型的主要内容,如果未能解决你的问题,请参考以下文章

java中byte[]转换成int

java里面byte数组和String字符串怎么转换

java里面byte数组和String字符串怎么转换

string怎么转化为byte

在java中,如何将byte转为string

java里面byte数组和String字符串怎么转换