相当于26进制。
查看复制到剪切板打印
public class T {
public static void main(String[] args) {
int n = letter2Number("ab");
System.out.println(n);
}
public static int letter2Number(String letters) {
if (!letters.matches("[a-zA-Z]+")) {
throw new IllegalArgumentException("Format ERROR!");
}
char[] chs = letters.toLowerCase().toCharArray();
int result = 0;
for (int i = chs.length - 1, p = 1; i >= 0; i--) {
result += getNum(chs[i]) * p;
p *= 26;
}
return result;
}
private static int getNum(char c) {
return c - 'a' + 1;
}
}
public class T {
public static void main(String[] args) {
int n = letter2Number("ab");
System.out.println(n);
}
public static int letter2Number(String letters) {
if (!letters.matches("[a-zA-Z]+")) {
throw new IllegalArgumentException("Format ERROR!");
}
char[] chs = letters.toLowerCase().toCharArray();
int result = 0;
for (int i = chs.length - 1, p = 1; i >= 0; i--) {
result += getNum(chs[i]) * p;
p *= 26;
}
return result;
}
private static int getNum(char c) {
return c - 'a' + 1;
}
}