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

use*_*816 15 java string integer

我是Java的新手,所以我想知道如何将字符串中的字母转换为数字,例如hello world输出为8 5 12 12 15 23 15 18 12 4.
所以a=1,b=2,z=26等.

das*_*ght 53

由于这很可能是一项学习任务,我将给你一个提示:拉丁字母表中所有UNICODE代码点都按字母顺序排序.如果代码a是某个数字N,那么代码bN+1,代码cN+2,等等; 代码ZN+26.

您可以使用与减去整数相同的方法减去字符代码点.由于代码点是按字母顺序排列的,因此进行以下计算

char ch = 'h';
int pos = ch - 'a' + 1;
Run Code Online (Sandbox Code Playgroud)

产生序列号h,即8.如果在循环中执行此计算,您将获得所需的结果.

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

  • +1是尝试教授而不是提供代码的唯一答案. (13认同)