java实现无符号数转换、字符串补齐、md5、uuid、随机数示例

package com.hongyuan.test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;
import java.util.UUID;
/*
* 杂项(无符号数转换,字符串补齐,md5,uuid,随机数)
*/
public class SundryTest {
//转成无符号数
public static Number toUnsignedNumber(Number num){
if(num instanceof Byte){
return (Byte)num & 0xff;
}else if(num instanceof Short){
return (Short)num & 0xffff;
}else if(num instanceof Integer){
return (Integer)num & 0xffffffffL;
}else{
return -1;
}
}
//左补齐
public static String leftPad(String str,String pad,int len){
String newStr=(str==null?"":str);
while(newStr.length()<len){
newStr=pad+newStr;
}
if(newStr.length()>len){
newStr=newStr.substring(newStr.length()-len);
}
return newStr;
}
//右补齐
public static String rightPad(String str,String pad,int len){
String newStr=(str==null?"":str);
while(newStr.length()<len){
newStr=newStr+pad;
}
if(newStr.length()>len){
newStr=newStr.substring(0, len);
}
return newStr;
}
//md5
public static String md5(String str){
StringBuilder sb=new StringBuilder();
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] message=digest.digest(str.getBytes());
for(int i=0;i<message.length;i++){
sb.append(leftPad( //左补齐
Integer.toHexString( //转成16进制数
(Integer)toUnsignedNumber(message[i])), //转成无符号数
"0",2).toUpperCase()); //转成大写
}
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("不存在md5服务!");
}
return sb.toString();
}
//UUID
public static String uuid(){
return UUID.randomUUID().toString().replaceAll("-","").toUpperCase();
}
//随机数(包括min,不包括max)
public static int random(int min,int max){
if(min<=max){
Random random=new Random();
return random.nextInt(max-min)+min;
}else{
throw new IllegalArgumentException("无法处理一个不合法的数字区间!");
}
}
public static void main(String[] args){
System.out.println("MD5(123456):"+md5("123456"));
System.out.println("UUID:"+uuid());
System.out.println("随机数:"+random(1,100));
}
}
上一篇:详解Struts2拦截器机制
栏 目:JAVA代码
本文标题:java实现无符号数转换、字符串补齐、md5、uuid、随机数示例
本文地址:http://www.codeinn.net/misctech/110646.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




