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

 更新时间:2014年04月30日 09:14:58   作者:  
这篇文章主要介绍了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));
 }

}

相关文章

  • Java泛型最全知识总结

    Java泛型最全知识总结

    面试被问到Java泛型怎么办,有了这篇文章,让你直接保送,文中有非常详细的知识总结及相关代码示例,需要的朋友可以参考下
    2021-06-06
  • Java枚举类接口实例原理解析

    Java枚举类接口实例原理解析

    这篇文章主要介绍了Java枚举类接口实例原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 一文带你弄懂Maven拉包(拉取依赖包)原理

    一文带你弄懂Maven拉包(拉取依赖包)原理

    业务需求开发的时候,我们总是会遇到拉不到依赖包的情况,此时如果不清楚 Maven 拉取依赖包的原理,那么很可能找不到问题所在,今天小编就带大家了解下 Maven 拉包的原理,让你在遇到问题的时候能快速解决,需要的朋友可以参考下
    2023-07-07
  • java读取文件显示进度条的实现方法

    java读取文件显示进度条的实现方法

    当读取一个大文件时,一时半会儿无法看到读取结果,就需要显示一个进度条,是程序员明白已经读了多少文件,可以估算读取还需要多少时间,下面的代码可以实现这个功能
    2014-01-01
  • 新建springboot项目时,entityManagerFactory报错的解决

    新建springboot项目时,entityManagerFactory报错的解决

    这篇文章主要介绍了新建springboot项目时,entityManagerFactory报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 关于对Java正则表达式"\\"的理解

    关于对Java正则表达式"\\"的理解

    正则表达式中,\代表转义字符,通常是转义一些特殊字符,下面这篇文章主要给大家介绍了关于对Java正则表达式"\\"的相关理解,需要的朋友可以参考下
    2022-09-09
  • IDEA 2020.1 for Mac 下载安装配置及出现的问题小结

    IDEA 2020.1 for Mac 下载安装配置及出现的问题小结

    这篇文章主要介绍了IDEA 2020.1 for Mac 下载安装配置及出现的问题小结,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • mybatis使用xml进行增删改查代码解析

    mybatis使用xml进行增删改查代码解析

    这篇文章主要介绍了mybatis使用xml进行增删改查代码解析,分享了相关配置和代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • SpringBoot+MinIO实现文件切片极速详解

    SpringBoot+MinIO实现文件切片极速详解

    在现代Web应用中,文件上传是一个常见的需求,尤其是对于大文件的上传,如视频、音频或大型文档,所以本文就来为大家介绍一下如何使用Spring Boot和MinIO实现文件切片极速上传技术吧
    2023-12-12
  • java File类重要方法以及如何操作文件详解

    java File类重要方法以及如何操作文件详解

    这篇文章主要为大家介绍了java File类重要方法以及如何操作文件详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论