gpt4 book ai didi

java - 生成小的 ascii 字符串列表

转载 作者:行者123 更新时间:2023-11-30 11:37:06 28 4
gpt4 key购买 nike

我想在 java 中创建一个生成器类,以生成下一个最小的唯一 ascii 字符串,其中生成的字符串必须以 a-Z 开头,并且每个后续字母可以是 a-Z 或 0-9。

字符串用于缩小 javascript 文件中的变量。

有没有关于执行此操作的工具的任何建议或关于如何实现的一些粗略代码?

最佳答案

如果您需要使用不同的字符选择,您可以使用

public static void main(String... ignored) {
String prev = "";
for (int i = 0; i < 40000000; i++) {
String s = asId(i);
if (s.length() > prev.length())
System.out.print(prev + "\n" + s + " to ");
prev = s;
}
}

static char[] CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();

public static String asId(long number) {
StringBuilder sb = new StringBuilder();
long div = number < 52 ? 1 : 52;
while (div <= number / 62) div *= 62;
while (div > 0) {
sb.append(CHARS[((int) (number / div % 62))]);
div /= 62;
}
return sb.toString();
}

打印

0 to Z
10 to ZZ
100 to ZZZ
1000 to

您可以在 Java 中使用以下内容。

public static String asId(long number) {
return (char) ('a' + number % 26)
+ (number >= 26 ? Long.toString(number / 26, 36) : "");
}

如果您担心可以使用负数。

public static String asId(long number) {
long lowBit = number & 1;
long highBits = number >>> 1;
return (char) ('a' + highBits % 13 + lowBit)
+ (number >= 26 ? Long.toString(highBits / 13, 36) : "");
}

关于java - 生成小的 ascii 字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202921/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com