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

所属分类: 软件编程 / java 阅读数: 51
收藏 0 赞 0 分享



复制代码 代码如下:

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));
 }

}

更多精彩内容其他人还在看

SpringBoot中使用Ehcache的详细教程

EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。这篇文章主要介绍了SpringBoot中使用Ehcache的相关知识,需要的朋友可以参考下
收藏 0 赞 0 分享

在idea 中添加和删除模块Module操作

这篇文章主要介绍了在idea 中添加和删除模块Module操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java spring整合junit操作(有详细的分析过程)

这篇文章主要介绍了java spring整合junit操作(有详细的分析过程),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解JAVA 弱引用

这篇文章主要介绍了 JAVA 弱引用的相关资料,帮助大家更好的理解和学习java引用对象,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

深入了解JAVA 虚引用

这篇文章主要介绍了JAVA 虚引用的相关资料,帮助大家更好的理解和学习JAVA,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

详解JAVA 强引用

这篇文章主要介绍了JAVA 强引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

java中的按位与(&)用法说明

这篇文章主要介绍了java中的按位与(&)用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
收藏 0 赞 0 分享

深入了解JAVA 软引用

这篇文章主要介绍了JAVA 软引用的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

利用MyBatis实现条件查询的方法汇总

这篇文章主要给大家介绍了关于利用MyBatis实现条件查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MyBatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound

这篇文章主要介绍了Intellij IDEA 与maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.Pa
收藏 0 赞 0 分享
查看更多