Android Studio的笔记--String和byte[]

String和byte[]的相互转换,字节数组转换

  • String转换byte[]
    • 文本
    • 16进制字节数组
  • byte[]转换String
    • 文本
    • 16进制
  • 其它

String转换byte[]

文本

将字符串(String)转换为字节(byte)的方法。默认使用的是UTF-8编码
StandardCharsets.UTF_8需要引用import java.nio.charset.StandardCharsets;
StandardCharsets.UTF_8的值是"UTF-8"

public byte[] stringToBytes(String s) {  
    //return s.getBytes(StandardCharsets.UTF_8);
    //return s.getBytes("UTF-8");
    return s.getBytes();  
}

使用时直接调用,例如像串口发送指令,文本转byte时使用。

str = stringToBytes(msg);

例如输入msg【0100112233CC】得到结果文本显示【0100112233CC】
如果是十六进制显示是【30 31 30 30 31 31 32 32 33 33 43 43】

16进制字节数组

十六进制字节数组字符串转换十六进制字节数组

//字符串转字节数组
    private byte[] hexStr2bytes(String hex) {
        int len = (hex.length() / 2);
        byte[] result = new byte[len];
        char[] achar = hex.toUpperCase().toCharArray();
        for (int i = 0; i < len; i++) {
            int pos = i * 2;
            result[i] = (byte) (hexChar2byte(achar[pos]) << 4 | hexChar2byte(achar[pos + 1]));
        }
        return result;
    }
//把16进制字符[0123456789abcdef](含大小写)转成字节
    private static int hexChar2byte(char c) {
        switch (c) {
            case '0':
                return 0;
            case '1':
                return 1;
            case '2':
                return 2;
            case '3':
                return 3;
            case '4':
                return 4;
            case '5':
                return 5;
            case '6':
                return 6;
            case '7':
                return 7;
            case '8':
                return 8;
            case '9':
                return 9;
            case 'a':
            case 'A':
                return 10;
            case 'b':
            case 'B':
                return 11;
            case 'c':
            case 'C':
                return 12;
            case 'd':
            case 'D':
                return 13;
            case 'e':
            case 'E':
                return 14;
            case 'f':
            case 'F':
                return 15;
            default:
                return -1;
        }
    }

使用

String msg="0100112233CC";
byte[] bytes = hexStr2bytes(msg);

例如输入msg【0100112233CC】得到结果十六进制显示【01 00 11 22 33 CC】

byte[]转换String

文本

ASCII码
将字节(byte)转换为字符串(String)的方法。默认使用的是UTF-8编码

String result = new String(bytes);
//String result = new String(bytes, "UTF-8"); 
//String result = new String(bytes, StandardCharsets.UTF_8); 
byte[] bytes= {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100};
String result = new String(received, "UTF-8");

得到结果Hello World

例如输入bytes= {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100};得到结果文本显示【Hello World】,十六进制显示【48 65 6C 6C 6F 20 57 6F 72 6C 64】

16进制

public static String bytesToHex(byte[] bytes) {
        StringBuilder result = new StringBuilder();
        for (byte b : bytes) {
            result.append(String.format("%02X", b));
        }
        return result.toString();
    }

使用时

byte[] bytes= {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100};
String ss=bytesToHex(bytes);

得到结果 48656C6C6F20576F726C64

其它

字节数组编码/解码在线网站
在这里插入图片描述
在这里插入图片描述

未完待续中

与君共勉!待续
欢迎指错,一起学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/228514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实时PPP提取电离层

1、使用RTMG-APP扣除卫星端和接收机端的频内偏差后的STEC和相位平滑伪距&#xff08;600历元初始化&#xff0c;因为相位平滑伪距累计电离层残差&#xff0c;一直平滑可能发散&#xff09;的STEC对比如下图&#xff1a; 2、1、使用RTMG-APP扣除卫星端和接收机端的频内偏差后的S…

公募REITs交易规则详解

普通投资者是否可以参与基础设施公募REITs交易&#xff1f; 基础设施公募 REITs 采取封闭式运作,符合法定条件并经交易所依法审核同意后&#xff0c;可以上市交易。基础设施公募 REITs 的认购和交易实施适当性管理制度。尽管对普通投资者参与基础设施公募 REITs 的认购和交易没…

UE4 材质实现Glitch效果

材质实现Glitch效果 UE4 材质实现Glitch效果预览1预览2 UE4 材质实现Glitch效果 预览1 添加材质函数&#xff1a; MF_RandomNoise 添加材质&#xff1a; 预览2 添加材质函数MF_CustomPanner&#xff1a; 添加材质函数&#xff1a;MF_Glitch 材质添加&#xff1a; 下面用…

如何给网页和代码做HTML加密?

本篇文章给大家谈谈html混淆加密在线&#xff0c;以及HTML在线加密对应的知识点&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 如何给代码加密? 1、源代码加密软件推荐使用德人合科技的加密软件&#xff0c;是一套从源头上保障数据安全和使用安全的软件系…

Python---类的综合案例

1、需求分析 设计一个Game类 属性&#xff1a; 定义一个类属性top_score记录游戏的历史最高分 定义一个实例属性player_name记录当前游戏的玩家姓名 方法&#xff1a; 静态方法show_help显示游戏帮助信息 类方法show_top_score显示历史最高分 实例方法start_game开始当前…

代理IP怎么使用?Mac苹果系统设置http代理IP教程

代理IP是一种通过将请求转发到另一个服务器&#xff0c;以隐藏自己的真实IP地址的服务器。使用代理IP可以保护您的隐私和安全&#xff0c;防止被跟踪或被攻击。在本文中&#xff0c;我们将介绍如何在Mac苹果系统上设置http代理IP教程。 一、了解代理IP 代理IP地址是一种可以用来…

基于Springboot+mybatis+mysql+jsp招聘网站

基于Springbootmybatismysqljsp招聘网站 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型&#xff1a;Java EE项目 项目名称&#xff1a;基于SPringBoot的照片网站 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 前端技术&…

如何做好口译服务,同传和交传哪个服务好

随着中国经济的蓬勃发展和综合实力的不断增强&#xff0c;中国与世界各国的交流也日益频繁。口译作为对外交流的桥梁与纽带&#xff0c;需求量与日俱增&#xff0c;其重要性不言而喻。那么&#xff0c;如何做好口译服务呢&#xff1f;是同传还是交传更好呢&#xff1f; 业内专家…

【Harbor Https】Harbor部署https并配置containerd拉取镜像

背景&#xff1a; 新项目&#xff0c;要接手另一个k8s集群&#xff0c;那个集群是kubernates1.24的rke2版本&#xff0c;里面已经不用docker容器了&#xff0c;使用了containerd容器来生成pod&#xff0c;因此需要变化我们以前的docker使用方式。首先第一步需要把harbor的镜像…

线程池的使用及实现

使用多进程进行并发编程&#xff0c;会频繁的创建销毁进程&#xff0c;效率比较慢&#xff0c;所以引入了线程&#xff0c;线程使用复用资源的方式提高了创建销毁的效率&#xff0c;但是随着创建线程的频率进一步提高&#xff0c;开销仍然无法忽略不计了。 要想办法优化此处线…

详解单链表OJ题

链表OJ经典题目 一.删除链表中等于给定值 val 的所有结点leetcode链接 二.给定一个带有头结点 head 的非空单链表&#xff0c;返回链表的中间结点。如果有两个中间结点&#xff0c;则返回第二个中间结点leetcode链接 三.反转一个单链表leetcode链接 四.输入一个链表&#xff0c…

HarmonyOS学习 第1节 DevEco Studio配置

俗话说的好&#xff0c;工欲善其事,必先利其器。我们先下载官方的开发工具DevEco Studio. 下载完成后&#xff0c;进行安装。 双击DevEco Studio&#xff0c;点击Next按照指引完成安装 重新启动DevEco&#xff0c;点击 Agree 进入环境配置&#xff0c;安装Node.js和ohpm 点击Ne…

蓝牙物联网对接技术难点有哪些?

#物联网# 蓝牙物联网对接技术难点主要包括以下几个方面&#xff1a; 1、设备兼容性&#xff1a;蓝牙技术有多种版本和规格&#xff0c;如蓝牙4.0、蓝牙5.0等&#xff0c;不同版本之间的兼容性可能存在问题。同时&#xff0c;不同厂商生产的蓝牙设备也可能存在兼容性问题。 2、…

STM32 HAL库代码编程风格--STM32外设结构体代码风格

1.HAL库代码风格理解 I/O、UART、SPI、USB、IIC等外设结构体总结 1、GPIO外设 GPIO只有初始化结构体。只需要定义初始化结构体即可(GPIO_InitTypeDef GPIO_InitStruct;)&#xff0c;内部成员都可通过初始化结构体引用。 2、UART外设 UART、IIC、SPI等外设&#xff08;除I/O外…

windows系统nodeJs报错node-sass npm ERR! command failed

报错信息 npm WARN deprecated request2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated tar2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asa…

英文作文AI创作工具,怎么用AI批量写英文作文

在当今全球化的时代&#xff0c;良好的英语写作能力不仅仅是学业成功的关键&#xff0c;更是职场竞争中的重要技能。随着科技的不断发展&#xff0c;我们现在有了更多的工具可以辅助我们提升英语写作水平。在这篇文章中&#xff0c;我将为大家推荐5种强大的AI写作工具&#xff…

C++基础 -42- STL库之list链表

———————STL库之list链表——————— &#x1f384; list链表的格式(需要定义头文件) list<int> data1(4, 100);list<int> data2(4, 500);&#x1f384;list链表的合并接口 &#x1f384;举例使用合并接口并且验证 data2.merge(data1);list<int>::…

探索低代码的潜力、挑战与未来展望

低代码开发作为一种新兴的开发方式&#xff0c;正在逐渐改变着传统的编程模式&#xff0c;低代码使得开发者无需编写大量的代码即可快速构建各种应用程序。然而&#xff0c;低代码也引发了一系列争议&#xff0c;有人称赞其为提升效率的利器&#xff0c;也有人担忧其可能带来的…

大数据毕业设计之前端02:架构布局和aside的设计

前言 上一篇主要讲了我学习前端的一个经历&#xff0c;以及为什么选择BuildAdmin作为深入前端学习的原因.同事也大致聊了一下学习前端需要使用哪些技术栈。 本篇文章来拆解一下BuildAdmin的前端代码结构&#xff0c;和布局实现的细节。 前端代码结构 必须先了解项目的结构&…

2.vue学习笔记(目录结构+模板语法+属性绑定)

1.目录结构 1.vscode ——VSCode工具的配置文件夹 2.node_modules ——Vue项目的运行依赖文件夹 3.public ——资源文件夹&#xff08;浏览器图标&#xff09; 4.src ——源码文件夹 5..gitgnore ——git忽略文件 6.index.html ——如果html文件 7.package.json —…