gpt4 book ai didi

java - 删除用于简单字母表的 ascii

转载 作者:行者123 更新时间:2023-12-01 22:39:34 25 4
gpt4 key购买 nike

我需要在不使用ASCII表的情况下重新设计此方法(它是维吉尼亚密码的编码器)

private static final int ALPHABET = 26;
public static final String KEY = "AB";

public String encode(String input) {
StringBuilder letters = new StringBuilder();
input = input.toUpperCase();
for (int i = 0, j = 0; i < input.length(); i++) {
char symbol = input.charAt(i);
letters.append((char) (((symbol - 65) + (KEY.charAt(j) - 65)) % ALPHABET + 65));
j = ++j % KEY.length();
}
return letters.toString().toLowerCase();
}

最佳答案

就像@Kayaman所说,我们可以手写字母表并用作引用。这样,如果我们的字母表发生变化(例如,更改为不同的语言),我们不必更改代码。新代码如下所示:

private static final String ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String KEY = "AB";

public String encode(String input) {
StringBuilder letters = new StringBuilder();
input = input.toUpperCase();
for (int i = 0, j = 0; i < input.length(); i++) {
char symbol = input.charAt(i);
char keySymbol = KEY.charAt(j);
int newIndex =
(ALPHABET.indexOf(symbol) + ALPHABET.indexOf(keySymbol))
% ALPHABET.length();
char newSymbol = ALPHABET.charAt(newIndex);
letters.append(newSymbol);
j = ++j % KEY.length();
}
return letters.toString().toLowerCase();
}

关于java - 删除用于简单字母表的 ascii,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58504866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com