`

PHP的pack("H*", $str)转换为java函数

    博客分类:
  • Java
 
阅读更多
最近在接一个PHP的接口,使用到pack("H*", $str),怎么进行转换呢,如下:

public static byte[] str2pack(String str) {
	int nibbleshift = 4;
	int position = 0;
	int len = str.length()/2 + str.length()%2;
	
	byte[] output = new byte[len];
	for (char v : str.toCharArray()) {
		byte n = (byte) v;
		if (n >= '0' && n <= '9') {
			n -= '0';
		} else if (n >= 'A' && n <= 'F') {
			n -= ('A' - 10);
		} else if (n >= 'a' && n <= 'f') {
			n -= ('a' - 10);
		} else {
			continue;
		}
		
		output[position] |= (n << nibbleshift);

		if (nibbleshift == 0) {
			position++;
		}
		nibbleshift = (nibbleshift + 4) & 7;
	}
	
	return output;
}
分享到:
评论
1 楼 weiwangchao 2015-06-11  
好用么?好用么?

相关推荐

    MapBasic参考手册

    - **把标注转换为文本的函数**: 使用 `Labelinfo()`。 - **Labelinfo()**: 把标注转换为文本。 **2.3 日期和时间函数** - **获取当前日期**: 使用 `CurDate()`。 - **CurDate()**: 获取当前日期。 - **抽取日期...

    PHP常用函数大全

    `unpack()` 函数可以从二进制字符串中提取数据,并将这些数据转换成 PHP 变量。 **语法:** `unpack ( string $format , string $data ) : array` **参数:** `$format` 指定如何解析二进制字符串。`$data` 是包含要...

    常用PHP5函数小全

    - **功能描述**:`unpack()` 函数从二进制字符串中提取数据,并按照给定格式转换为数组形式返回。这在处理二进制数据或网络协议时特别有用。 - **语法**: ```php unpack(string $format, string $data): array `...

    js中的escape及unescape函数的php实现代码.docx

    这个函数遍历输入字符串的每个字符,如果字符的ASCII值大于等于127,说明是多字节字符,使用`iconv`转换为UCS-2编码并转化为16进制的`bin2hex`,然后添加"%u"前缀;否则,直接将字符的ASCII值转化为16进制并添加百...

    java模拟PHP的pack和unpack类

    在Java中,我们可以创建一个名为`PackUtil`的工具类,提供一个名为`pack`的方法,该方法接受一个字符串参数`str`,并将其转换为字节数组。这个方法的主要思路是遍历输入字符串中的每个字符,根据字符的ASCII值将其...

    Matlab命令(函数)大全

    ### Matlab命令(函数)大全 #### 一、文件与路径管理 **1.1 文件路径操作** - **addpath**: 添加指定目录到MATLAB搜索路径中。 - **rmpath**: 从MATLAB搜索路径中移除指定目录。 - **demo**: 打开MATLAB示例演示。...

    jsj_PHP函数大全

    - **bindec**: 将二进制字符串转换为十进制整数。 - **chunk_split**: 将字符串分割成更小的部分,并在每个部分之间插入指定的字符串。 - **chr**: 返回ASCII码对应的字符。 - **str_pad**: 用其他字符填充字符串,...

    MATLAB 函数参考

    ### MATLAB 函数参考详解 #### 一、常用命令 **1.1 管理用命令** - **addpath**: 添加指定的路径到 MATLAB 的搜索路径列表中。 - **rmpath**: 移除指定的路径,使其不再出现在 MATLAB 的搜索路径列表中。 - **...

    mapBasic介绍(中文版)

    MapBasic作为一种专为GIS应用程序设计的编程语言,其强大的功能涵盖了变量管理、流程控制、函数定义、数据转换、日期时间处理、数学计算、字符串操作以及表数据的管理和查询等多个方面。本文档不仅适用于初学者了解...

    Stanford Doggo 开源四足预算报表

    该项目旨在为教育和研究提供一个低成本且可扩展的平台,用于探索四足机器人的设计、控制算法及应用。此预算报表详细列出了构建该四足机器人所需的各个组件及其成本估算。 #### 二、关键组件与成本分析 ##### 1. ...

    matlab函数大全

    ### MATLAB函数大全解析 #### 一、管理用命令 **1.1 添加和删除路径** - **addpath**: 此命令用于向MATLAB的搜索路径中添加新的目录。这对于加载自定义工具箱或使用不在默认路径上的文件非常有用。 - **rmpath**:...

    jquery 框架 jquery-1.2.6

    - `jquery-1.2.6.pack.js`: 除了压缩外,还进行了混淆处理,进一步减小体积。 - `说明.txt`: 可能包含了关于这个版本jQuery的使用说明或者更新日志。 6. **版本历史** jQuery 1.2.6是在2008年发布的,相较于后来...

    Keil5手动安装pack教程_keil5pack安装_keil5pack_嵌入式系统设计_

    在这个例子中,我们有一个名为"Keil5手动安装pack教程.pdf"的文件,这可能是关于安装过程的详细指南。通常,你可以从半导体厂商的网站上找到相应的Pack,例如STM32、Atmel等。 2. **启动Keil uVision5**:打开Keil ...

    基于PHP的二进制在线转换php版源码.zip

    `pack`函数将多个值按照指定的格式转换为一个二进制字符串,而`unpack`则执行相反的操作,将二进制字符串解析成数组。它们在处理结构化数据如网络协议、文件格式等时非常有用。 - `pack`例子: ```php $binary =...

    matlab函数集非常全,实用

    ### MATLAB函数集详解 #### 一、环境与帮助类函数 ...以上仅为MATLAB函数集的部分概述,实际应用中涉及的函数远超于此,涵盖了数据分析、信号处理、图像处理、机器学习等多个领域,是科研与工程实践中不可或缺的工具。

    matlab命令超级大全

    - **`full`**:将稀疏矩阵转换为满矩阵。 2. **满阵和稀疏矩阵的转换** - **`spdiags`**:提取或创建带状稀疏矩阵。 - **`speye`**:创建稀疏单位矩阵。 3. **稀疏矩阵的非零元素操作** - **`nnz`**:非零元素...

    Mapbasic参考手册

    - **数学函数**:三角函数(Cos(), Sin(), Tan(), Acos(), Asin(), Atn()),几何函数(Area(), Perimeter(), Distance(), ObjectLen()),随机数(Randomize, Rnd()),符号函数(Abs(), Sgn()),取整函数(Fix()...

    java模拟PHP的pack和unpack类_.docx

    PHP提供了一组内置的函数`pack`和`unpack`,用于将数据转换为二进制格式和从二进制数据中提取数据。在Java中,由于没有直接对应的内置函数,我们可以自己实现类似的功能。文档中给出的`PackUtil`类就提供了这样的...

Global site tag (gtag.js) - Google Analytics