1  /**
2 *
3 * String 与 byte[]之间的转换
4 * 编码:String ---> byte[]:调用String的getBytes()
5 * 解码:byte[]--->String: 调用String的构造器
6 *
7 *
8 * 编码: 字符串--->字节(看得懂--->看不懂二进制数据)
9 * 解码: 编码的逆过程,字节-->字符串 (看不懂二进制数据--->看得懂)
10 *
11 * 说明:解码时,要求解码使用时的字符集必须与编码时使用的字符集一致,否则会出现乱码
12 *
13 */
14 @Test
15 public void test7() throws UnsupportedEncodingException {
16 String str1 = "abc123";
17 byte[] bytes = str1.getBytes();
18 System.out.println(Arrays.toString(bytes)); //[97, 98, 99, 49, 50, 51]
19
20 String str2 = "abc123中国";
21 byte[] bytes1 = str2.getBytes(); //使用默认的字符集,进行编码
22 System.out.println(Arrays.toString(bytes1));//[97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67]
23
24 byte[] gbks = str2.getBytes("gbk"); //使用 gbk字符集进行编码
25 System.out.println(Arrays.toString(gbks)); //[97, 98, 99, 49, 50, 51, -42, -48, -71, -6]
26
27 System.out.println("*********************");
28 String str3 = new String(bytes1);//使用默认的字符集,进行解码
29 System.out.println(str3); //abc123中国
30
31 String str4 = new String(gbks);
32 System.out.println(str4); //abc123�й� 乱码 原因:编码集与解码集不一致
33
34 String str5 = new String(gbks, "gbk");
35 System.out.println(str5); //abc123中国
36
37 }

Java 常用类 String类与其他结构之间的转换-----String 与 byte[]之间的转换的更多相关文章

  1. Java常用API(Math类)

    Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且 ...

  2. Java常用API(Arrays类)

    Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...

  3. Java常用API(ArrayList类)

    Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...

  4. Java常用API(Random类)

    Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...

  5. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  6. Java 常用对象-Date类和Calender类

    2017-11-02 22:29:34 Date类:类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值 ...

  7. 28个Java常用的工具类

    源码下载:http://pan.baidu.com/s/1pJLSczD Base64.javaBase64DecodingException.javaCConst.javaCharTools.jav ...

  8. Java 常用对象-Math类

    2017-11-02 21:26:18 Math类:Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. *属性摘要 *常用方法 random() : 返回[0.0,1.0 ...

  9. Java 常用对象-Object类

    2017-10-31 23:42:08 Object类:类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法. 或者说,每个类都直接或者间 ...

  10. java 常用时间操作类,计算到期提醒,N年后,N月后的日期

    package com.zjjerp.tool; import java.text.ParseException; import java.text.ParsePosition; import jav ...

随机推荐

  1. TienChin-课程管理-展示课程列表

    配置按钮权限 博主这里就不贴SQL了,自行手动添加一下吧. 更改表结构 ALTER TABLE `tienchin_course` MODIFY COLUMN `info` varchar(255) ...

  2. ansible使用,搭建mongo的replica-set小结

    ansible 前言 常用到的指令 查看ip是否可用 执行 执行,查看日志输出 查看这个 playbook 的执行会影响到哪些 hosts 设置服务器免密登录 ansible了解 变量名的使用 pla ...

  3. vue 动态路由刷新页面404

    1.如果你的静态路由最后有如下代码: // 404 page must be placed at the end !!! { path: "*", redirect: " ...

  4. 6.9 Windows驱动开发:内核枚举进线程ObCall回调

    在笔者上一篇文章<内核枚举Registry注册表回调>中我们通过特征码定位实现了对注册表回调的枚举,本篇文章LyShark将教大家如何枚举系统中的ProcessObCall进程回调以及Th ...

  5. 7.5 C/C++ 实现链表队列

    链表队列是一种基于链表实现的队列,相比于顺序队列而言,链表队列不需要预先申请固定大小的内存空间,可以根据需要动态申请和释放内存.在链表队列中,每个节点包含一个数据元素和一个指向下一个节点的指针,头节点 ...

  6. 7.2 C/C++ 实现动态链表

    动态链表是一种常用的动态数据结构,可以在运行时动态地申请内存空间来存储数据,相比于静态数组和静态链表,更加灵活和高效.在动态链表中,数据元素被组织成一条链表,每个元素包含了指向下一个元素的指针,这样就 ...

  7. CSS文本,字体设置与元素边框,阴影,显示模式

    什么是元素的显示模式 网页中的标签很多,在不同的地方使用不同类型的标签. 元素显示模式就是标签以什么方式进行显示.如:div自己占一行,span一行可以放多个. HTML元素一般分为块元素和行内元素两 ...

  8. 使用DoraCloud搭建支持统信UOS桌面的信创云桌面系统

    信创云桌面 信创云桌面采用国产的芯片,支持国产的桌面操作系统.本方案采用海光CPU的服务器,运行DoraCloud云桌面系统.可以支持统信UOS桌面系统和麒麟桌面操作系统. 环境准备 服务器:海光 5 ...

  9. (python)学习ing||类学习,@property装饰器

    class pers(): def __init__(self,hp): self._hp=hp @property def hp(self): return self._hp @hp.setter ...

  10. ES6学习 第四章 字符串的新增方法

    前言 本章介绍字符串对象的新增方法.不常用的方法不做重点笔记. 本章原文链接:字符串的新增方法 includes().startsWith().endsWith() 确定一个字符串是否包含在另一个字符 ...