Java中字符串与byte数组之间的相互转换

Java中字符串与byte数组之间的相互转换是经常使用的操作,下面是完整攻略:

字符串转byte数组

将字符串转换为byte数组可以通过以下两种方式实现:

1.使用String类的getBytes()方法

String str = "hello, world!";
byte[] bytes = str.getBytes();

这里的getBytes()方法会将字符串转换为默认字符集的byte数组。如果需要指定字符集可以传入参数,例如:

byte[] bytes = str.getBytes("UTF-8");

2.使用Charset类的encode()方法

String str = "hello, world!";
Charset charset = Charset.defaultCharset();
ByteBuffer buffer = charset.encode(str);
byte[] bytes = buffer.array();

这里的encode()方法也会将字符串转换为byte数组,但是可以通过Charset类来指定字符集。

byte数组转字符串

将byte数组转换为字符串可以通过以下两种方式实现:

1.使用String类的构造方法

byte[] bytes = new byte[]{104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33};
String str = new String(bytes);

这里使用String类的构造方法,传入byte数组作为参数。

2.使用Charset类的decode()方法

byte[] bytes = new byte[]{104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33};
Charset charset = Charset.defaultCharset();
ByteBuffer buffer = ByteBuffer.wrap(bytes);
String str = charset.decode(buffer).toString();

这里使用Charset类的decode()方法来将byte数组转换为字符串。需要先将byte数组包装成ByteBuffer对象,再调用decode()方法转换成字符串。

示例说明

示例1:字符串转byte数组

String str = "中文字符串";
byte[] bytes = str.getBytes("UTF-8");
System.out.println(Arrays.toString(bytes));

输出结果为:

[-28, -72, -83, -26, -106, -121, -25, -67, -91, -28, -72, -85, -27, -101, -67, -27, -118, -104]

可以看到,由于"中文字符串"不是ASCII码,因此使用UTF-8编码得到的byte数组是负数。

示例2:byte数组转字符串

byte[] bytes = new byte[]{-28, -72, -83, -26, -106, -121, -25, -67, -91, -28, -72, -85, -27, -101, -67, -27, -118, -104};
Charset charset = Charset.forName("UTF-8");
String str = new String(bytes, charset);
System.out.println(str);

输出结果为:

中文字符串

可以看到,使用指定的UTF-8编码将byte数组转换为字符串后,字符串的值正好是原来的"中文字符串"。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中字符串与byte数组之间的相互转换 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • java webservice上传下载文件代码分享

    下面是“java webservice上传下载文件代码分享”的完整攻略: 1. 准备工作 在开始实现文件上传下载的功能之前,我们需要准备好以下几点: 安装Java与Eclipse IDE开发环境; 下载并安装Apache Tomcat服务器; 导入JAX-WS 开发包,以便能够使用JAX-WS创建Webservice服务。 2. 创建文件上传下载的Webse…

    Java 2023年5月19日
    00
  • MySql实现翻页查询功能

    MySql实现翻页查询功能的完整攻略 什么是翻页查询? 翻页查询是指当查询结果集的数据过多,一次显示不全,把数据分页查询以实现多页查询的技巧。这在Web应用程序中非常常用,比如搜索引擎的结果页面,商品列表页等。 实现翻页查询的方式 在MySql中,实现翻页查询可以通过limit关键字实现。limit语句限制查询结果集的行数,并且提供偏移量,以实现分页查询。 …

    Java 2023年6月15日
    00
  • javascript计算当月剩余天数(天数计算器)示例代码

    这里就为你详细讲解一下 “javascript计算当月剩余天数(天数计算器)示例代码”的完整攻略吧。 一、前置知识 在开始编写这个 JavaScript 计算当月剩余天数的样例代码之前,你需要了解以下几个前置知识: JavaScript 基础语法:了解 JavaScript 基本数据类型、运算符、条件语句、循环语句等基础语法。 Date 对象:了解 Java…

    Java 2023年6月15日
    00
  • 详解Springboot之接收json字符串的两种方式

    下面是详解“详解Springboot之接收json字符串的两种方式”的完整攻略。 1. 介绍 Spring Boot是一个快速开发框架,它可以简化Spring的配置和开发过程。在使用Spring Boot的过程中,经常需要接收json字符串数据,本篇文章将详细介绍Spring Boot中接收json字符串的两种方式。 2. 方式一:使用@RequestBod…

    Java 2023年5月20日
    00
  • SpringMVC注解的入门实例详解

    下面是“SpringMVC注解的入门实例详解”的完整攻略。 1. SpringMVC注解概述 SpringMVC注解是Spring框架提供的一种简化开发的方式。它的主要作用是简化开发,让开发者更加专注于业务逻辑代码的实现,而不必过多地关注与框架的集成。SpringMVC注解是基于Java的元注解体系,它提供了很多注解用于标记业务处理代码和控制器以及请求参数等…

    Java 2023年5月16日
    00
  • Java Swing最详细基础知识总结

    Java Swing最详细基础知识总结 什么是Java Swing Java Swing是一个GUI工具包,用于在Java应用程序中创建可视化用户界面。它提供了许多功能强大的组件,包括按钮、文本框、标签和表格等,使得我们可以快速方便的创建GUI界面,对于Java开发者来说是非常重要的工具。 Java Swing组件 Java Swing提供了许多GUI组件,…

    Java 2023年5月26日
    00
  • SpringDataJPA原生sql查询方式的封装操作

    Spring Data JPA提供了多种查询方式,包括基于方法名的查询、@Query注解查询、@NamedQuery查询等。但是在特定情况下,我们可能需要使用原生SQL查询。Spring Data JPA也提供了封装好的方式来实现原生SQL查询。 封装原生SQL查询方式 Spring Data JPA提供了EntityManager接口来进行JPA操作,该接…

    Java 2023年5月20日
    00
  • Mybatis实现增删改查

    下面是详细讲解MyBatis实现增删改查的完整攻略: 1.添加MyBatis配置文件 在项目下创建mybatis-config.xml配置文件,其中包含对mybatis初始化相关配置信息,如数据源、别名、 mapper扫描等。 <?xml version="1.0" encoding="UTF8" ?> &…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部