java实现php的pack.,java模拟PHP的pack和unpack类,packunpack_PHP教程

这篇博客介绍了如何在Java中模拟PHP的pack和unpack功能。提供了具体的代码实现,帮助Java开发者处理二进制数据,包括将字符串打包成字节数组以及从字节流中解压出16进制字符串。内容涵盖了关键代码段和相关函数的详细解释。
摘要由CSDN通过智能技术生成

java模拟PHP的pack和unpack类,packunpack

本文实例为大家分享了java模拟PHP的pack和unpack类的具体代码,供大家参考,具体内容如下

package qghl.intp.util;

import java.io.IOException;

import java.io.InputStream;

public class PackUtil{

/**

* 打包字符串

* 类似php中pack在java中的实现

*

* @param str

* @return

*/

public static byte[] pack(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 = 'A' && n = 'a' && n <= 'f')="" {="" n="" -="('a'" 10);="" }="" else="" continue;="" output[position]="" |="(n" <<="" nibbleshift);="" if="" (nibbleshift="=" 0)="" position++;="" nibbleshift="(nibbleshift" +="" 4)="" &="" 7;="" return="" output;="" **="" *="" 16进制的字符解压="" 类php中unpack="" @param="" is="" len="" @return="" @throws="" ioexception="" public="" static="" string="" unpack(inputstream="" is,="" int="" len)="" throws="" byte[]="" bytes="new" byte[len];="" is.read(bytes);="" unpack(bytes);="" ***="" unpack(byte[]="" bytes)="" stringbuilder="" stringbuilder("");="" (bytes="=" null="" ||="" bytes.length=""

以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。

您可能感兴趣的文章:Python struct.unpack

php pack与unpack 摸板字符字符含义

解析二进制流接口应用实例 pack、unpack、ord 函数使用方法

php使用pack处理二进制文件的方法

Java基础教程之包(package)

www.bkjia.comtrueTechArticlejava模拟PHP的pack和unpack类,packunpack 本文实例为大家分享了java模拟PHP的pack和unpack类的具体代码,供大家参考,具体内容如下 package qghl.intp...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,你可以使用 ByteBuffer 实现似于 Python 中 struct 模块中的 pack 和 unpack 方法的功能。以下是一个示例代码: ```javaimport java.nio.ByteBuffer; import java.nio.ByteOrder; public class StructExample { public static void main(String[] args) { // 将 int 值打包为字节序列 int intValue =12345; byte[] packedBytes = packInt(intValue); System.out.println("Packed bytes: " + bytesToHex(packedBytes)); // 将字节序列解包为 int 值 int unpackedInt = unpackInt(packedBytes); System.out.println("Unpacked int: " + unpackedInt); } private static byte[] packInt(int value) { ByteBuffer buffer = ByteBuffer.allocate(4); buffer.order(ByteOrder.LITTLE_ENDIAN); // 设置字节序为小端序列(与Python的struct默认相同) buffer.putInt(value); return buffer.array(); } private static int unpackInt(byte[] bytes) { ByteBuffer buffer = ByteBuffer.wrap(bytes); buffer.order(ByteOrder.LITTLE_ENDIAN); // 设置字节序为小端序列 return buffer.getInt(); } private static String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02X", b)); } return sb.toString(); } } ``` 上述代码演示了 Java 中如何实现似于 Python 的 struct 模块中的 pack 和 unpack 方法。`packInt` 方法将一个 int 值打包为字节序列,`unpackInt` 方法将字节序列解包为一个 int 值。在这个示例中,我们使用了 ByteBuffer 来处理字节操作,并通过设置字节序为小端序列来与 Python 的 struct 默认行为保持一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值