首页 > 其他分享 >开发工具类

开发工具类

时间:2023-11-16 15:57:05浏览次数:23  
标签:字符 String long 开发工具 key import lHexLong

1、生成短链接工具类

点击查看代码
package com.rpqb.sms.common.utils;

import com.rpqb.common.utils.sign.Md5Utils;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 生成短链接工具类
 */
public class ShortUrlUtils {

    public static List<String> shortUrl(String key) {
        // 可以自定义生成 MD5 加密字符传前的混合 KEY
        key = key + System.nanoTime();
        // 要使用生成 URL 的字符
        String[] chars = new String[] { "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" ,
                "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "q" , "r" , "s" , "t" ,
                "u" , "v" , "w" , "x" , "y" , "z" , "0" , "1" , "2" , "3" , "4" , "5" ,
                "6" , "7" , "8" , "9" , "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" ,
                "I" , "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" , "S" , "T" ,
                "U" , "V" , "W" , "X" , "Y" , "Z"

        };
        // 对传入网址进行 MD5 加密
        String hex = Md5Utils.hash(key);

        List<String> resUrl = new ArrayList<>();
        for ( int i = 0; i < 4; i++) {

            // 把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算
            String sTempSubString = hex.substring(i * 8, i * 8 + 8);

            // 这里需要使用 long 型来转换,因为 Inteper .parseInt() 只能处理 31 位 , 首位为符号位 , 如果不用 long ,则会越界
            long lHexLong = 0x3FFFFFFF & Long.parseLong (sTempSubString, 16);
            String outChars = "" ;
            for ( int j = 0; j < 6; j++) {
                // 把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引
                long index = 0x0000003D & lHexLong;
                // 把取得的字符相加
                outChars += chars[( int ) index];
                // 每次循环按位右移 5 位
                lHexLong = lHexLong >> 5;
            }
            // 把字符串存入对应索引的输出数组
            resUrl.add(outChars);
        }
        return resUrl;
    }

    public static void main(String[] args) {
        shortUrl("1711554641737564200").stream().forEach(System.out::println);
    }
}

2、

点击查看代码

3、

点击查看代码

4、

点击查看代码

标签:字符,String,long,开发工具,key,import,lHexLong
From: https://www.cnblogs.com/ceilingZ/p/17836464.html

相关文章

  • 第5章 QtCreator 开发工具必知必会技巧
    第5章QtCreator开发工具必知必会技巧本章导学Creator代码编辑界面功能介绍项目视图展示是pro文件里面的编译文件列表上面加号可以添加各类文件的视图分栏看见打开的文档还可以打开新的窗口Creator常用快捷键--程序开发的提效利器Creator片段......
  • idea开发工具常用快捷键
    转载自,侵删。Ctrl+Shift+Enter,语句完成“!”,否定完成,输入表达式时“!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[OR],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按F3......
  • go语言命令行程序(CLI)开发工具小记
    Go语言领域,命令行程序占据比较重要的位置。因此,命令行程序的快速开发及工具选择就成为一个不可忽视的问题。本文简要总结使用Go语言开发命令行程序中常用的几个框架。一、CobraCobra是关于golang的一个命令行解析库,用它能够快速创建功能强大的cli应用程序和命令行工具。cobra......
  • Web开发工具大集合
    网站开发者的一大苦恼,就是有太多的浏览器要应付。幸亏世界上有一些聪明的人,能够研究出一大些方便编辑和调试网页代码的好工具。不过,要从不计其数的小工具里面找出合适的可真不容易。这篇文章列出了几个最好用的web开发工具,并指导你快速地激活、安装、使用他们。下面是工具列表:We......
  • GPT-4 (All Tools):打造未来的开发工具
    随着GPT-4的推出,开发者们迎来了前所未有的插件功能,这些功能将极大地丰富他们的工作方式。"AllTools"作为GPT-4的一个重要组成部分,它提供了一系列强大的内置工具,可以帮助开发者更有效地编码、搜索内容、以及创建原型。Python代码执行工具首先,GPT-4内置了一个Python代码执行器。......
  • 有哪些app开发工具支持跨平台开发?
    跨平台开发是指使用一种或多种工具和技术来开发可以在多个平台上运行的应用程序。以下是一些支持跨平台开发的APP开发工具:Flutter:由Google开发的UI工具包,可用于在iOS、Android和Web上构建美观的原生用户界面。使用单一代码库,开发人员可以创建高性能、流畅的应用程序。ReactNative:......
  • 【Dw 网页编辑开发工具】Dreamweaver CC2018 Mac中文汉化版
    Dreamweavercc2018mac中文汉化版是Adobe公司开发的一款专门用于macOS10.11或更高系统的网页编辑开发工具,也是当前最流行、最为广泛使用的网站开发软件,大家对这款软件应该都有听说过吧,毕竟该软件在行业中的知名度非常高,并且它的编辑功能也是众所周知。软件地址:看置顶贴软件特色:1......
  • VS Code C# 开发工具包正式发布
    前言微软于本月正式发布VisualStudioCodeC#开发工具包,此前该开发套件已经以预览版的形式在6月份问世。经过4个月的测试和调整,微软修复了350多个问题,其中大部分是用户反馈导致的问题。此外,微软还对产品进行了300多项有针对性的改进。VSCodeC#开发工具包介绍微软官方描述:C#......
  • wasm-pack 基于rust 的 WebAssembly 开发工具
    目前基于WebAssembly的应用是越来越多了,同时周边工具以及生成也越来越强大了,wasm-pack是rust周边一个很强大的工具,以下是一个简单的试用参考使用安装 curlhttps://rustwasm.github.io/wasm-pack/installer/init.sh-sSf|sh创建简单项目......
  • 【从零学习python 】02. 开发工具介绍及交互式编程及注释详解
    编写Python代码根据我们之前介绍的知识,我们知道,所谓代码其实就是将一段普通文本按照一定的规范编写,然后交给电脑解析并且执行。那既然是一段文本,那我们是否可以直接使用文本编辑器来编码呢?答案是肯定的,但是这样开发起来,效率会很低。一、常见的代码编辑工具实际上,在我们实际工作......