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

}

相关文章

  • springboot控制层传递参数为非必填值的操作

    springboot控制层传递参数为非必填值的操作

    这篇文章主要介绍了springboot控制层传递参数为非必填值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 详解Java的Struts框架中栈值和OGNL的使用

    详解Java的Struts框架中栈值和OGNL的使用

    这篇文章主要介绍了Java的Struts框架中栈值和OGNL的使用,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-11-11
  • 在SpringBoot中配置日期格式化的方法详解

    在SpringBoot中配置日期格式化的方法详解

    通常情况下,发起一个 Http 请求,Spring Boot 会根据请求路径映射到指定 Controller 上的某个方法的参数上,接着,Spring 会自动进行类型转换,对于日期类型的参数,Spring 默认是没有配置如何将字符串转换成日期类型的,本文将给大家介绍在SpringBoot中配置日期格式化的方法
    2023-10-10
  • SpringCloud中的路由网关鉴权熔断详解

    SpringCloud中的路由网关鉴权熔断详解

    这篇文章主要介绍了SpringCloud中的路由网关鉴权熔断详解,Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,需要的朋友可以参考下
    2024-01-01
  • Java自动化测试中多数据源的切换(实例讲解)

    Java自动化测试中多数据源的切换(实例讲解)

    下面小编就为大家带来一篇Java自动化测试中多数据源的切换(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • springboot配置允许跨域访问代码实例

    springboot配置允许跨域访问代码实例

    这篇文章主要介绍了springboot配置允许跨域访问代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java多线程中的Exchanger应用简析

    Java多线程中的Exchanger应用简析

    这篇文章主要介绍了Java多线程中的Exchanger应用简析,Exchanger提供了一个同步点exchange方法,两个线程调用exchange方法时,无论调用时间先后,两个线程会互相等到线程到达exchange方法调用点,此时两个线程可以交换数据,将本线程产出数据传递给对方,需要的朋友可以参考下
    2023-12-12
  • Java基础之选择结构与循环结构

    Java基础之选择结构与循环结构

    这篇文章主要介绍了Java基础之选择结构与循环结构,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • MybatisPlus中的insert操作详解

    MybatisPlus中的insert操作详解

    这篇文章主要介绍了MybatisPlus中的insert操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Springboot使用异步请求提高系统的吞吐量详解

    Springboot使用异步请求提高系统的吞吐量详解

    这篇文章主要介绍了Springboot使用异步请求提高系统的吞吐量详解,和同步请求相对,异步不需要等待响应,随时可以发送下一次请求,如果是同步请求,需要将信息填写完整,再发送请求,服务器响应填写是否正确,再做修改,需要的朋友可以参考下
    2023-08-08

最新评论