Java - 如何将字符串中的字母转换为数字?

2022-09-02 05:02:25

我对Java很陌生,所以我想知道如何将字符串中的字母转换为数字,例如 将输出为 。
所以,,等等。hello world8 5 12 12 15 23 15 18 12 4a=1b=2z=26


答案 1

由于这很可能是一项学习作业,因此我会给你一个提示:拉丁字母表字母的所有UNICODE码位都是按字母顺序排列的。如果 的代码是某个数字,则 的代码是 、的代码是 ,依此类推;的代码是 。aNbN+1cN+2ZN+26

可以像减去整数一样减去字符代码点。由于码位是按字母顺序排列的,因此进行以下计算

char ch = 'h';
int pos = ch - 'a' + 1;

产生 的序列号,即 。如果在循环中执行此计算,则将获得所需的结果。h8

请注意,上述公式仅适用于同一寄存器的字符。如果输入字符串大小写混合,则需要在进行计算之前将每个字符转换为小写,否则会出现错误。


答案 2
String s = "hello world";
String t = "";
for (int i = 0; i < s.length(); ++i) {
    char ch = s.charAt(i);
    if (!t.isEmpty()) {
        t += " ";
    }
    int n = (int)ch - (int)'a' + 1;
    t += String.valueOf(n);
}
System.out.println(t);

这不涉及空间等。