Java   作品      JavaStructMimicker   

类似python的struct方案,java中有两个:
JavaStruct https://code.google.com/p/javastruct/
Javolution http://javolution.org


https://gitee.com/vigiles/java-struct-mimicker/


本例简单的模拟python的struct,不是功能的相同实现。
这里简单的将数据统一转为字符串,再转16进制


python的struct库设定:
字符串:按照普通字符串操作,使用中,有多少字符就用多少‘s’占位
str = "ABC".encode('utf-8')
占位规则:
str_paceholder = "3s" # 长度3,可以使用‘3s’占位,也可以使用‘sss’占位。
字符:
char = "D" # 只有一个字符,同C语言的char。根据开发需求,须要占1位使用‘c’;否则如上按普通字符串操作。
占位规则:
char_paceholder = "c"
char_paceholder = "1s"
整型:
int = 99 # python中只有int一个类型。而对于C语言中short、int、long有不同长度。根据开发需求占几位,使用不同的占位符
占位规则:
int_paceholder = "h" # 对应C中的short,占2位
int_paceholder = "H" # 对应C中的无符号short,占2位
int_paceholder = "i" # 对应C中的int,占4位
int_paceholder = "I" # 对应C中的无符号int,占4位
int_paceholder = "l" # 对应C中的long,占4位
int_paceholder = "L" # 对应C中的无符号long,占4位
int_paceholder = "q" # 对应C中的long long,占8位
int_paceholder = "Q" # 对应C中的无符号long long,占8位
浮点型:
float = 9.9 # python中只有float一个浮点型
占位规则:
float_paceholder = "f" # 对应C中的float,占4位
float_paceholder = "D" # 对应C中的double,占8位
示例需求:长度为3的字符串+占2位的数字+占4位的浮点数字
fmt="3sHf" # 封装规则。目标数据是 ABC 99 9.9 ,按顺序排列占位符


-end

承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设