拆分单词和编码到数字

时间:2016-12-24 20:14:11

标签: java arrays hash alphabet

我目前正致力于使用Java构建的加密系统。在加密处理之前,我需要找到最有效的方法来执行以下操作:

在我得到一个字符串(f.e。'明文")后,我需要将其拆分为字母并将其编码为数字(f.e.0-25)。

在加密过程之后,我需要以相反的方式执行上述操作,以便将加密的消息(以数字编码)解码为字母,然后字母再次成为一个单词。

我的主要目标是以最快的方式做我想做的事。

1 个答案:

答案 0 :(得分:0)

虽然你可以使用流:

str.chars().map(c -> c - 'a') // IntStream of 0-25

由于流开销,字节上的普通循环将是最快的:

byte[] bytes = str.getBytes(); // OK, since all chars are in range 0-127
for (int i = 0; i < bytes.length; i++)
    bytes[i] = bytes[i] - 'a';

与解密/构建相反:

for (int i = 0; i < bytes.length; i++)
    bytes[i] = bytes[i] + 'a';
String plain = new String(bytes);