zoukankan      html  css  js  c++  java
  • 短地址服务(一)

    /**
     * @author 
     * @date: 2019-01-09 11:14
     * @des: 10进制转换62进制
     */
    public class ConversionUtil {
        private static char[] charSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
    
        /**
         * TODO 10进制到62进制
         *
         * @param number
         * @param length 转化成的62进制长度,不足length长度的话高位补0,否则不改变什么
         * @return
         */
        public static String ts_10_to_62(long number, int length) {
            Long rest = number;
            Stack<Character> stack = new Stack<Character>();
            StringBuilder result = new StringBuilder(0);
            while (rest != 0) {
                stack.add(charSet[new Long((rest - (rest / 62) * 62)).intValue()]);
                rest = rest / 62;
            }
            for (; !stack.isEmpty(); ) {
                result.append(stack.pop());
            }
            int result_length = result.length();
            StringBuilder temp0 = new StringBuilder();
            for (int i = 0; i < length - result_length; i++) {
                temp0.append('0');
            }
            return temp0.toString() + result.toString();
        }
    
        /**
         * TODO 62进制转换10进制
         * @param shortUrl 62进制值
         * @return
         */
        public static long ts_62_to_10(String shortUrl) {
            int multiple = 1;
            long result = 0;
            Character c;
            for (int i = 0; i < shortUrl.length(); i++) {
                c = shortUrl.charAt(shortUrl.length() - i - 1);
                result += ts_62_value(c) * multiple;
                multiple = multiple * 62;
            }
            return result;
        }
    
        private static int ts_62_value(Character c) {
            for (int i = 0; i < charSet.length; i++) {
                if (c == charSet[i]) {
                    return i;
                }
            }
            return -1;
        }
    }
  • 相关阅读:
    Request和Session的生命周期
    了解EBP指针
    esp跟ebp跟踪记录
    深入浅出Node.js (6)
    洛谷 P2404 自然数的拆分问题
    洛谷 P1852 奇怪的字符串
    洛谷 P1433 吃奶酪
    洛谷 P1881 绳子对折
    洛谷 P1162 填涂颜色
    P1145 约瑟夫
  • 原文地址:https://www.cnblogs.com/dwxt/p/10473089.html
Copyright © 2011-2022 走看看