浏览代码

add RadixUtil pr#260

Looly 5 年之前
父节点
当前提交
97ed8ca46a
共有 2 个文件被更改,包括 21 次插入16 次删除
  1. 1 0
      CHANGELOG.md
  2. 20 16
      hutool-core/src/main/java/cn/hutool/core/util/RadixUtil.java

+ 1 - 0
CHANGELOG.md

@@ -15,6 +15,7 @@
 * 【extra  】     VelocityEngine的getRowEngine改为getRawEngine(issue#I2EGRG@Gitee)
 * 【cache  】     缓存降低锁的粒度,提高并发能力(pr#1385@Github)
 * 【core   】     SimpleCache缓存降低锁的粒度,提高并发能力(pr#1385@Github)
+* 【core   】     增加RadixUtil(pr#260@Gitee)
 
 ### Bug修复
 * 【core   】     修复FileUtil.move以及PathUtil.copy等无法自动创建父目录的问题(issue#I2CKTI@Gitee)

+ 20 - 16
hutool-core/src/main/java/cn/hutool/core/util/RadixUtil.java

@@ -1,9 +1,10 @@
 package cn.hutool.core.util;
 
 /**
- * 把一个十进制整数根据自己定义的进制规则进行转换
- *
- * <h2>主要应用一下情况:</h2>
+ * 把一个十进制整数根据自己定义的进制规则进行转换<br>
+ * from:https://gitee.com/loolly/hutool/pulls/260
+ * <p>
+ * 主要应用一下情况:
  * <ul>
  *     <li>根据ID生成邀请码,并且尽可能的缩短。并且不希望直接猜测出和ID的关联</li>
  *     <li>短连接的生成,根据ID转成短连接,同样不希望被猜测到</li>
@@ -21,25 +22,28 @@ public class RadixUtil {
 	 * 对于需要补齐的,自己可以随机填充IO字符
 	 * 26个字母:abcdefghijklmnopqrstuvwxyz
 	 */
-	public final static String  RADIXS_34 = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
+	public final static String RADIXS_34 = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
 	/**
 	 * 打乱后的34进制
 	 */
-	public final static String  RADIXS_SHUFFLE_34 = "H3UM16TDFPSBZJ90CW28QYRE45AXKNGV7L";
+	public final static String RADIXS_SHUFFLE_34 = "H3UM16TDFPSBZJ90CW28QYRE45AXKNGV7L";
 
 	/**
 	 * 59进制字符串,不包含 IOl 字符
 	 */
-	public final static String  RADIXS_59 = "0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
+	public final static String RADIXS_59 = "0123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
 	/**
 	 * 打乱后的59进制
 	 */
-	public final static String  RADIXS_SHUFFLE_59 = "vh9wGkfK8YmqbsoENP3764SeCX0dVzrgy1HRtpnTaLjJW2xQiZAcBMUFDu5";
+	public final static String RADIXS_SHUFFLE_59 = "vh9wGkfK8YmqbsoENP3764SeCX0dVzrgy1HRtpnTaLjJW2xQiZAcBMUFDu5";
+
 	/**
 	 * 把一个整型数值转换成自己定义的进制
-	 * 长度即进制<br/>
-	 * <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>
+	 * 长度即进制<br>
+	 * <ul>
+	 *   <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>
+	 * </ul>
 	 *
 	 * @param radixs 自定进制,不要重复,否则转不回来的。
 	 * @param num    要转换的数值
@@ -93,21 +97,21 @@ public class RadixUtil {
 	 *
 	 * @param radixs    自定进制,需要和encode的保持一致
 	 * @param encodeStr 需要转换成十进制的字符串
-	 * @return
+	 * @return int
 	 */
 	public int decodeToInt(final String radixs, final String encodeStr) {
 		//还原负数
-		return (int) decodeToLong(radixs, encodeStr);
+		return (int) decode(radixs, encodeStr);
 	}
 
 	/**
 	 * 把转换后进制的字符还原成long 值
 	 *
-	 * @param radixs
-	 * @param encodeStr
-	 * @return
+	 * @param radixs 自定进制,需要和encode的保持一致
+	 * @param encodeStr 需要转换成十进制的字符串
+	 * @return long
 	 */
-	public long decodeToLong(final String radixs, final String encodeStr) {
+	public long decode(final String radixs, final String encodeStr) {
 		//目标是多少进制
 		int rl = radixs.length();
 		long res = 0L;