mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-05 21:28:00 +08:00
add RadixUtil pr#260
This commit is contained in:
parent
0471e640c5
commit
97ed8ca46a
@ -15,6 +15,7 @@
|
|||||||
* 【extra 】 VelocityEngine的getRowEngine改为getRawEngine(issue#I2EGRG@Gitee)
|
* 【extra 】 VelocityEngine的getRowEngine改为getRawEngine(issue#I2EGRG@Gitee)
|
||||||
* 【cache 】 缓存降低锁的粒度,提高并发能力(pr#1385@Github)
|
* 【cache 】 缓存降低锁的粒度,提高并发能力(pr#1385@Github)
|
||||||
* 【core 】 SimpleCache缓存降低锁的粒度,提高并发能力(pr#1385@Github)
|
* 【core 】 SimpleCache缓存降低锁的粒度,提高并发能力(pr#1385@Github)
|
||||||
|
* 【core 】 增加RadixUtil(pr#260@Gitee)
|
||||||
|
|
||||||
### Bug修复
|
### Bug修复
|
||||||
* 【core 】 修复FileUtil.move以及PathUtil.copy等无法自动创建父目录的问题(issue#I2CKTI@Gitee)
|
* 【core 】 修复FileUtil.move以及PathUtil.copy等无法自动创建父目录的问题(issue#I2CKTI@Gitee)
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package cn.hutool.core.util;
|
package cn.hutool.core.util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 把一个十进制整数根据自己定义的进制规则进行转换
|
* 把一个十进制整数根据自己定义的进制规则进行转换<br>
|
||||||
*
|
* from:https://gitee.com/loolly/hutool/pulls/260
|
||||||
* <h2>主要应用一下情况:</h2>
|
* <p>
|
||||||
|
* 主要应用一下情况:
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>根据ID生成邀请码,并且尽可能的缩短。并且不希望直接猜测出和ID的关联</li>
|
* <li>根据ID生成邀请码,并且尽可能的缩短。并且不希望直接猜测出和ID的关联</li>
|
||||||
* <li>短连接的生成,根据ID转成短连接,同样不希望被猜测到</li>
|
* <li>短连接的生成,根据ID转成短连接,同样不希望被猜测到</li>
|
||||||
@ -35,11 +36,14 @@ public class RadixUtil {
|
|||||||
* 打乱后的59进制
|
* 打乱后的59进制
|
||||||
*/
|
*/
|
||||||
public final static String RADIXS_SHUFFLE_59 = "vh9wGkfK8YmqbsoENP3764SeCX0dVzrgy1HRtpnTaLjJW2xQiZAcBMUFDu5";
|
public final static String RADIXS_SHUFFLE_59 = "vh9wGkfK8YmqbsoENP3764SeCX0dVzrgy1HRtpnTaLjJW2xQiZAcBMUFDu5";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 把一个整型数值转换成自己定义的进制
|
* 把一个整型数值转换成自己定义的进制
|
||||||
* 长度即进制<br/>
|
* 长度即进制<br>
|
||||||
|
* <ul>
|
||||||
* <li>encode("AB",10) 51转换成2进制,A=0;B=1 。 二进制1010,结果 BABA</li>
|
* <li>encode("AB",10) 51转换成2进制,A=0;B=1 。 二进制1010,结果 BABA</li>
|
||||||
* <li>encode("VIP",21) 21转换成3进制,V=0;I=1;P=2 ,三进制210 ,得到结果PIV </li>
|
* <li>encode("VIP",21) 21转换成3进制,V=0;I=1;P=2 ,三进制210 ,得到结果PIV </li>
|
||||||
|
* </ul>
|
||||||
*
|
*
|
||||||
* @param radixs 自定进制,不要重复,否则转不回来的。
|
* @param radixs 自定进制,不要重复,否则转不回来的。
|
||||||
* @param num 要转换的数值
|
* @param num 要转换的数值
|
||||||
@ -93,21 +97,21 @@ public class RadixUtil {
|
|||||||
*
|
*
|
||||||
* @param radixs 自定进制,需要和encode的保持一致
|
* @param radixs 自定进制,需要和encode的保持一致
|
||||||
* @param encodeStr 需要转换成十进制的字符串
|
* @param encodeStr 需要转换成十进制的字符串
|
||||||
* @return
|
* @return int
|
||||||
*/
|
*/
|
||||||
public int decodeToInt(final String radixs, final String encodeStr) {
|
public int decodeToInt(final String radixs, final String encodeStr) {
|
||||||
//还原负数
|
//还原负数
|
||||||
return (int) decodeToLong(radixs, encodeStr);
|
return (int) decode(radixs, encodeStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 把转换后进制的字符还原成long 值
|
* 把转换后进制的字符还原成long 值
|
||||||
*
|
*
|
||||||
* @param radixs
|
* @param radixs 自定进制,需要和encode的保持一致
|
||||||
* @param encodeStr
|
* @param encodeStr 需要转换成十进制的字符串
|
||||||
* @return
|
* @return long
|
||||||
*/
|
*/
|
||||||
public long decodeToLong(final String radixs, final String encodeStr) {
|
public long decode(final String radixs, final String encodeStr) {
|
||||||
//目标是多少进制
|
//目标是多少进制
|
||||||
int rl = radixs.length();
|
int rl = radixs.length();
|
||||||
long res = 0L;
|
long res = 0L;
|
||||||
|
Loading…
Reference in New Issue
Block a user