java實(shí)現(xiàn)無符號(hào)數(shù)轉(zhuǎn)換、字符串補(bǔ)齊、md5、uuid、隨機(jī)數(shù)示例
package com.hongyuan.test;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;
import java.util.UUID;
/*
* 雜項(xiàng)(無符號(hào)數(shù)轉(zhuǎn)換,字符串補(bǔ)齊,md5,uuid,隨機(jī)數(shù))
*/
public class SundryTest {
//轉(zhuǎn)成無符號(hào)數(shù)
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;
}
}
//左補(bǔ)齊
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;
}
//右補(bǔ)齊
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( //左補(bǔ)齊
Integer.toHexString( //轉(zhuǎn)成16進(jìn)制數(shù)
(Integer)toUnsignedNumber(message[i])), //轉(zhuǎn)成無符號(hào)數(shù)
"0",2).toUpperCase()); //轉(zhuǎn)成大寫
}
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("不存在md5服務(wù)!");
}
return sb.toString();
}
//UUID
public static String uuid(){
return UUID.randomUUID().toString().replaceAll("-","").toUpperCase();
}
//隨機(jī)數(shù)(包括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("無法處理一個(gè)不合法的數(shù)字區(qū)間!");
}
}
public static void main(String[] args){
System.out.println("MD5(123456):"+md5("123456"));
System.out.println("UUID:"+uuid());
System.out.println("隨機(jī)數(shù):"+random(1,100));
}
}
相關(guān)文章
springboot控制層傳遞參數(shù)為非必填值的操作
這篇文章主要介紹了springboot控制層傳遞參數(shù)為非必填值的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10SpringCloud中的路由網(wǎng)關(guān)鑒權(quán)熔斷詳解
這篇文章主要介紹了SpringCloud中的路由網(wǎng)關(guān)鑒權(quán)熔斷詳解,Hystrix是一個(gè)用于處理分布式系統(tǒng)的延遲和容錯(cuò)的開源庫,在分布式系統(tǒng)里,許多依賴不可避免的會(huì)調(diào)用失敗,比如超時(shí)、異常等,需要的朋友可以參考下2024-01-01Java自動(dòng)化測試中多數(shù)據(jù)源的切換(實(shí)例講解)
下面小編就為大家?guī)硪黄狫ava自動(dòng)化測試中多數(shù)據(jù)源的切換(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10Java基礎(chǔ)之選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)
這篇文章主要介紹了Java基礎(chǔ)之選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04Springboot使用異步請求提高系統(tǒng)的吞吐量詳解
這篇文章主要介紹了Springboot使用異步請求提高系統(tǒng)的吞吐量詳解,和同步請求相對,異步不需要等待響應(yīng),隨時(shí)可以發(fā)送下一次請求,如果是同步請求,需要將信息填寫完整,再發(fā)送請求,服務(wù)器響應(yīng)填寫是否正確,再做修改,需要的朋友可以參考下2023-08-08