Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)
/**
* 数据类型转换工具类
* @author cyf
*
*/
public class NumConvertUtil{ /**
* bytes 转16进制字符串
* @param bArray
* @return
*/
public static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i < bArray.length; i++) {
sTemp = Integer.toHexString(0xFF & bArray[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
} /**
* 16进制字符串转bytes
* @param hex
* @return
*/
public static byte[] hexStringToByte(String hex) { int len = 0;
int num=0; //判断字符串的长度是否是两位
if(hex.length()>=2){ //判断字符喜欢是否是偶数
len=(hex.length() / 2);
num = (hex.length() % 2); if (num == 1) {
hex = "0" + hex;
len=len+1;
} }else{ hex = "0" + hex;
len=1; } byte[] result = new byte[len];
char[] achar = hex.toCharArray();
for (int i = 0; i < len; i++) {
int pos = i * 2;
result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
}
return result; } private static int toByte(char c) { if (c >= 'a')
return (c - 'a' + 10) & 0x0f;
if (c >= 'A')
return (c - 'A' + 10) & 0x0f;
return (c - '0') & 0x0f; } /**
* 16进制字符串转十进制int
* @param HexString
* @return
*/
public static int HexStringToInt(String HexString) { int inJTFingerLockAddress = Integer.valueOf(HexString, 16); return inJTFingerLockAddress;
} /**
* 十进制int转16进制字符串
* @param HexString
* @return
*/
public static String IntToHexString(int num) { String hexString = Integer.toHexString(num); return hexString;
} /**
* 16进制String转BCD
* @param asc
* @return
*/
public static byte[] strToBcd(String asc) {
int len = asc.length();
int mod = len % 2; if (mod != 0) {
asc = "0" + asc;
len = asc.length();
} byte abt[] = new byte[len];
if (len >= 2) {
len = len / 2;
} byte bbt[] = new byte[len];
abt = asc.getBytes();
int j, k; for (int p = 0; p < asc.length()/2; p++) {
if ( (abt[2 * p] >= '0') && (abt[2 * p] <= '9')) {
j = abt[2 * p] - '0';
} else if ( (abt[2 * p] >= 'a') && (abt[2 * p] <= 'z')) {
j = abt[2 * p] - 'a' + 0x0a;
} else {
j = abt[2 * p] - 'A' + 0x0a;
} if ( (abt[2 * p + 1] >= '0') && (abt[2 * p + 1] <= '9')) {
k = abt[2 * p + 1] - '0';
} else if ( (abt[2 * p + 1] >= 'a') && (abt[2 * p + 1] <= 'z')) {
k = abt[2 * p + 1] - 'a' + 0x0a;
}else {
k = abt[2 * p + 1] - 'A' + 0x0a;
} int a = (j << 4) + k;
byte b = (byte) a;
bbt[p] = b;
}
return bbt;
} /**
* String 类型数字转化为Double 保留置顶小数位(用于显示金额等。)
* @param money
* @param type 保留小数点位数 #.00保留两位 #.0保留一位 #保留整数
* @return
*/
public static String strToDouble(String money,String type){ String toDouble= new DecimalFormat(type).format(Double.parseDouble(money)); return toDouble; } }
十六进制字符串高低位转换(“dc45fd45”转化成“45fd45dc”)
private static String lockAddress(String lockAddress) { StringBuffer s1 = new StringBuffer(lockAddress);
int index;
for (index = 2; index < s1.length(); index += 3) {
s1.insert(index, ',');
}
String[] array = s1.toString().split(",");
String[] swapOrder = swapOrder(array);
StringBuffer s2 = new StringBuffer();
for (String string :swapOrder ) {
s2.append(string);
}
return s2.toString(); } public static String[] swapOrder(String[] arr){
int length = arr.length;
for(int i=0;i<length/2;i++){ //只需一个循环,数组的一半就可以,第一个和最后一个交换,第二个和倒数第二个交换。。。
String temp = arr[i];
arr[i] = arr[length-1-i];
arr[length-1-i] = temp;
}
return arr;
} public static void main(String[] args) throws Exception { System.out.println(ServerDoor.lockAddress("dc45fd45"));
//输出结果:45fd45dc }
记录备忘,以后会补充,有错误请大神指正。
Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)的更多相关文章
- Java 类型转换工具类(持续更新)
简介 将项目中用到的类型转换做个记录. 详细代码 @Component public class TypeUtil { // [start]字符串转各种格式 // 字符串转日期(格式:"yy ...
- JavaEE-实验一 Java常用工具类编程
该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1. 使用类String类的分割split 将字符串 “Solutions to selected exercises ca ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- Java开发工具类集合
Java开发工具类集合 01.MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- Java并发工具类 - CountDownLatch
Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...
- MinerUtil.java 爬虫工具类
MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...
- MinerDB.java 数据库工具类
MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...
随机推荐
- Mac环境下WingIDE切换python版本
https://www.cnblogs.com/fastLearn/p/6514442.html
- MySQL知识总结(三)存储过程
1. 创建存储过程 1.1 无参数存储过程 CREATE PROCEDURE bruce_procedure () BEGIN --1.声明变量 --2.执行业务逻辑 END 1.2 有参数的存储过程 ...
- python基础整理4——面向对象装饰器惰性器及高级模块
面向对象编程 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象编程(Object Oriented Pro ...
- Mac app打包成dmg
1. 找到打包的app文件,在Xcode工程的Products目录下 2. 在桌面新建一个文件夹dmg,将app文件放进去. 3. 为了实现拖拽到Application的效果,需要在这个文件夹里放一个 ...
- ajax和原生ajax、文件的上传
ajax理解: ajax发送的请求是异步处理的.也就是说如下形式: function f1(){ $.ajax( { ....... success:function(){ a= return a } ...
- PAT乙级1021
1021 个位数统计 (15 分) 给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1& ...
- CentOS 6.4 编译安装 gcc 4.8.1
今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋.终于有一个全面支持C++11语言特性的编译器了! 当然了,gcc仅仅 ...
- ios学习路线—Objective-C(Runtime消息机制)
RunTime简称运行时.就是系统在运行的时候的一些机制,其中最主要的是消息机制.对于C语言,函数的调用在编译的时候会决定调用哪个函数( C语言的函数调用请看这里 ).编译完成之后直接顺序执行,无任何 ...
- Linux基础命令之文件过滤及内容编辑处理(一)
. cat 功能是连接多个文件并且打印到屏幕输出,或重定向到指定的文件 五大功能: 1.查看文件内容 cat file.txt 2.合并文件内容 cat file1 file2>newfile3 ...
- layui水平导航条三级
需求 需要做一个顶部的水平导航条,有三级,展开的时候二级和三级一起展开,结果如图: 效果 一级菜单 二级标题 三级菜单 三级菜单 二级标题 三级菜单 三级菜单 一级菜单 二级标题 三级菜单 ...