gpt4 book ai didi

java - 将字母数字转换为 ascii 并递增

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:51 24 4
gpt4 key购买 nike

我对如何将 3 个字母和 3 个数字转换为 ascii 并将它们递增 1 感到困惑...这是旧的 next-license-plate 问题。谁能给我一个正确方向的插入?

最佳答案

这个问题其实有实际应用。我写了一个帐号生成器,就像这样工作。我把它修改成你的格式。给你,

public class LicenseNumber {

int numericSum;
int letterSum;

public LicenseNumber() {
numericSum = letterSum = 0;
}

public LicenseNumber(String number) {
if (!number.matches("^[A-Za-z]{3}[0-9]{3}$"))
throw new IllegalArgumentException("Number doesn't match license format");
numericSum = Integer.valueOf(number.substring(3));
letterSum = value(number, 0) * 26 * 26 + value(number, 1) * 26 +
value(number, 2);
}

public void increment() {
increment(1);
}

public void increment(int inc) {
numericSum += inc;
if (numericSum >= 1000) {
letterSum += numericSum/1000;
numericSum %= 1000;
}
}

public String toString() {
char[] letters = new char[3];
int n = letterSum;
for (int i = 0; i < 3; i++) {
letters[2-i] = (char)('A' + (n%26));
n /= 26;
}
return new String(letters) + String.format("%03d", numericSum);
}

private int value(String s, int index) {
return Character.toUpperCase(s.charAt(index)) - 'A';
}

/**
* Example
*/
public static void main(String[] args) {

LicenseNumber lic = new LicenseNumber("ABC999");
for (int i=0; i < 100; i++) {
lic.increment(500);
System.out.println(lic);
}
}

}

关于java - 将字母数字转换为 ascii 并递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383132/

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