所以,我需要做的是将一个字符数组转换为一个数字数组.
我知道这听起来像一个奇怪的请求,但这是我一直在努力做的事情:
有这样的数组:
charArray[0] = e;
charArray[1] = b;
charArray[2] = p;
Run Code Online (Sandbox Code Playgroud)
并将其翻译成:
numArray[0] = 5;
numArray[1] = 2;
numArray[2] = 16;
Run Code Online (Sandbox Code Playgroud)
因此它会将char转换为它在字母表中的位置(例如,"a"是第一个字母,"b"是第2个,等等)
这样做的最佳方法是什么?我将尝试逐个尝试,但后来意识到我会有太多的代码行,它只是大量的嵌套if语句,我想可能有更好的方法来做到这一点.
(我的方式是这样if charArray[0] = a then numArray[0] = 1,并且经历了这样的每一个字母,直到你到达if charArray[0] = z then numArray[0] = 26,但是在char数组中需要26个不同的if语句PER CHAR,这在我看来是一种可怕的方式,因为我的char数组非常长.)
您可以使用技巧对每个索引i:
numArray[i] = charArray[i] - 'a' + 1;
Run Code Online (Sandbox Code Playgroud)
更"按书"的方式做到这一点:
final String letters = "abcdefghijklmnopqrstuvwxyz";
. . .
numArray[i] = letters.indexOf(charArray[i]) + 1;
Run Code Online (Sandbox Code Playgroud)
然后任何位置i,使得charAray[i]不是小写字母将最终在0 numArray[i].有了这个伎俩,价值numArray[i]将是不可预测的.
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |