首页 > 编程语言 >Java byte[] 和 String互相转换

Java byte[] 和 String互相转换

时间:2023-04-12 19:45:02浏览次数:56  
标签:转换 String Base64 world Java byte

Java byte[] 和 String互相转换
原文链接:https://blog.csdn.net/qq_19734597/article/details/115865372

通过用例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,比如IO操作,生成加密hash码等等。

除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的目的,通常String代表文本字符串,byte数组针对二进制数据

通过String类将String转换成byte[]或者byte[]转换成String

用String.getBytes()方法将字符串转换为byte数组,通过String构造函数将byte数组转换成String

注意:这种方式使用平台默认字符集

  1. package com.bill.example;
  2. public class StringByteArrayExamples
  3. {
  4. public static void main(String[] args)
  5. {
  6. //Original String
  7. String string = "hello world";
  8. //Convert to byte[]
  9. byte[] bytes = string.getBytes();
  10. //Convert back to String
  11. String s = new String(bytes);
  12. //Check converted string against original String
  13. System.out.println("Decoded String : " + s);
  14. }
  15. }

输出:

  hello world

通过Base64 将String转换成byte[]或者byte[]转换成String[Java 8]

可能你已经了解 Base64 是一种将二进制数据编码的方式,正如UTF-8和UTF-16是将文本数据编码的方式一样,所以如果你需要将二进制数据编码为文本数据,那么Base64可以实现这样的需求

从Java 8 开始可以使用Base64这个类

  1. import java.util.Base64;
  2. public class StringByteArrayExamples
  3. {
  4. public static void main(String[] args)
  5. {
  6. //Original byte[]
  7. byte[] bytes = "hello world".getBytes();
  8. //Base64 Encoded
  9. String encoded = Base64.getEncoder().encodeToString(bytes);
  10. //Base64 Decoded
  11. byte[] decoded = Base64.getDecoder().decode(encoded);
  12. //Verify original content
  13. System.out.println( new String(decoded) );
  14. }
  15. }

输出:

  hello world

总结

在byte[]和String互相转换的时候你应该注意输入数据的类型

  1. 当使用String类的时候,将String作为输入类型

  2. 当使用Base64类的时候,使用byte数组作为输入类型

标签:转换,String,Base64,world,Java,byte
From: https://www.cnblogs.com/sunny3158/p/17310995.html

相关文章

  • JavaWeb中Servlet、web应用和web站点的路径细节("/"究竟代表着什么)
    JavaWeb中Servlet、web应用和web站点的路径细节("/"究竟代表着什么) 1开门见山新建一个tomcatweb项目,配置tomcat的虚拟目录,取默认值(/项目名_war_exploded)那么如果你的tomcat的默认站点(即http://localhost:8080)没有更改的话,这个项目的两个重要的根目录就出来了web站点根目......
  • Java基础语法
    注释、标识符、关键字注释注释并不会被执行,是给我们程序员看的书写注释是一个非常好的习惯Java注释的分类:单行注释://多行注释:/****/文档注释标识符标识符的作用用来表示变量名、类名、方法名、数组名和文件名等是一个有效的字符序列......
  • c#中byte数组0x_(C#基础) byte[] 之初始化, 赋值,转换。
    c#中byte数组0x_(C#基础)byte[]之初始化,赋值,转换。原文链接:https://blog.csdn.net/weixin_39862716/article/details/111506430byte[]之初始化赋值用forloop赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法。1.创建一个长度为10的byte数组,并且其中每个byte的......
  • C#中byte数组与string类型之间的转换
    C#中byte数组与string类型之间的转换原文链接:https://blog.csdn.net/weixin_44359158/article/details/116457477string类型转换为byte[]:stringstr="Test";byte[]bytTemp=System.Text.Encoding.Default.GetBytes(str);12byte[]转换为stringstringstrTemp=Sy......
  • javaweb-学习创建servlet
    Servlet创建、声明、映射,利⽤ServletContext统计⼀个⽹站的访问总量。1)、创建一个servelet选择要用到的方法2)、编辑serveletpackagecom.cont;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletContext;importjavax.servlet.Ser......
  • 阿里云 SMS 短信 Java SDK 封装
    Github&Issues: https://github.com/cn-src/aliyun-sms官方文档:https://help.aliyun.com/document_detail/55284.html?spm=5176.8195934.1001856.3.5cd64183fNqodO ......
  • Map<String, Map<String, String>>转String,再转回Map
    importorg.junit.Test;importjava.util.*;importjava.util.regex.Pattern;/****/publicclassTest2{@Testpublicvoidtest(){Map<String,String>testMap1=newHashMap<String,String>();testMap1.put("k......
  • PAT-basic-1028 人口普查 java c++
    一、题目某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过......
  • Java构建树结构的公共方法
    一、前提pId需要传入用来确认第一级的父节点,而且pId可以为null。树实体类必须实现:TreeNode接口MyTreeVo必须有这三个属性:id、pId、children可以根据不同需求,配置TreeNode和MyTreeVo中固定的属性二、代码定义TreeNode接口publicinterfaceTreeNode{StringgetId(......
  • PAT-basic-1029 旧键盘 java c++
    一、题目旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括......