A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ★忙碌★ 中级黑马   /  2013-8-31 07:51  /  1447 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ★忙碌★ 于 2013-8-31 14:34 编辑

java中,如何将一个字节数组转换成字符串

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1 多查api

查看全部评分

4 个回复

倒序浏览
字节转换成字符串肯定只有字符串知道怎么转,所以需要到字符串的类中找答案,查阅API可以发现,在构造字符串的时候就提供了方法:new String(需要转换的字节数组,编码格式);

以下是一个字符串跟字节数据之间的转换小Demo:

  1. import java.io.UnsupportedEncodingException;

  2. public class TestDemo  {
  3.     public static void main(String[] args) throws UnsupportedEncodingException{
  4.         //定义字符串
  5.             String str1 = "张三";
  6.             //定义字节数组接受字符串转换后的自借宿据
  7.         byte[] buf = str1.getBytes("UTF-8");
  8.         //打印查看一下被转成字节的字符串到底是个什么东东
  9.         for(int x=0; x<buf.length; x++){
  10.                 if(x==buf.length-1){
  11.                         System.out.println(buf[x]);
  12.                 }
  13.                 else{
  14.                         System.out.print(buf[x]+",");
  15.                 }
  16.                        
  17.         }
  18.         //将字节数组中的数据转回字符串
  19.         String str2 = new String(buf,"UTF-8");
  20.         System.out.println("str2="+str2);
  21.     }
  22. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
比如你定义的字节数组是byte[] buf = new byte[1024];实际存储的长度是len。
直接调用String的构造方法,里面有3个参数是字节数组、字节数组起始位置、字节数组存储的字节实际长度
String str = new String(buf,0,len);

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
用String的构造方法
String(byte[] bytes, int offset, int length)
          通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
这种东西查一下API文档好了

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马