Java 经验书
目录
正文
字节 转 String
在开发中,会遇到各种 byte 类型转换为 String 的情况
下面做些记录
// 1. String.valueOf() 效率最高的方法
String s = String.valueOf('c');
String s = String.valueOf(new char[]{'c'}); //将一个char数组转换成String
// 2.
Character.toString() 实际上底层还是 String.valueOf()
String s = Character.toString('c');
String s = new Character('c').toString();
// 3. 直接使用 + 运算符
String s = "" + 'c';
// 虽然这个方法很简单,但这是效率最低的方法
// Java中的String Object的值实际上是不可变的,是一个final的变量。
// 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
// 而Java对使用 + 运算符处理String相加进行了方法重载。
// 字符串直接相加连接实际上调用了如下方法:
// new StringBuilder().append("").append('c').toString();
// 4. 利用 String 构造器,创建新的 String 对象
String s = new String(new char[]{'c'});
Base64Encoder 的使用
对于 Base64 的转换(编码和解码),在数据传输(图片),签名或简单加密的时候可用到
不过并不推荐使用 Base64进行加密
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
// 编码
BASE64Encoder encoder = new BASE64Encoder();
//编码器
String imagestr = encoder.encode(captcha);
// 进行编码
// 解码
BASE64Decoder decoder = new BASE64Decoder();
// 解码器
byte[] bytes = decoder.decodeBuffer(imagestr);
// 进行解码
// ------ 新的写法 ----
import java.util.Base64.Encoder
import java.util.Base64.Decoder
// 编码
Encoder encoder = Base64.getEncoder();
String result = encoder.encodeToString(byteArray);
// 解码
Decoder decoder = Base64.getDecoder();
byte[] result = decoder.decode(str);
// 为什么有新的写法?
// 原因是 /lib/tool.jar 和 /lib/rt.jar 已经在 Java SE 9 中删除
Java 经验书传送地址: https://www.cnblogs.com/inick/p/14389414.html