Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用简单字母表删除ascii_Java_Ascii_Vigenere - Fatal编程技术网

Java 使用简单字母表删除ascii

Java 使用简单字母表删除ascii,java,ascii,vigenere,Java,Ascii,Vigenere,我需要在不使用ASCII表的情况下修改此方法(它是vigenere密码的编码器) private static final int ALPHABET=26; 公共静态最终字符串KEY=“AB”; 公共字符串编码(字符串输入){ StringBuilder字母=新的StringBuilder(); input=input.toUpperCase(); 对于(inti=0,j=0;i

我需要在不使用
ASCII
表的情况下修改此方法(它是vigenere密码的编码器)

private static final int ALPHABET=26;
公共静态最终字符串KEY=“AB”;
公共字符串编码(字符串输入){
StringBuilder字母=新的StringBuilder();
input=input.toUpperCase();
对于(inti=0,j=0;i
就像@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();
}
private static final String ALPHABET=“abcdefghijklmnopqrstuvxyz”;
公共静态最终字符串KEY=“AB”;
公共字符串编码(字符串输入){
StringBuilder字母=新的StringBuilder();
input=input.toUpperCase();
对于(inti=0,j=0;i
你想要什么?是你写的代码吗?它有用吗?如果没有,它怎么不起作用呢?我做了,它起作用了。但是我的老师希望它不使用ascii,而是使用简单的字符串(或数组)和英文字母,我不知道如何正确使用。啊,你的意思是没有
符号-65
的诡计。您可以创建一个按顺序包含所有字母的字符串,并使用
indexOf
charAt
对其执行相同的操作。