对用户输入进行编码和解码的java程序

对用户输入进行编码和解码的java程序,java,Java,因此,问题是编写一个java程序,从输入中获取一个字符串和一个字符,并使用如下方法对其进行编码: 编码方法:该方法将计算输入字符与输入字符串的第一个字母之间的距离,并将输入字符添加到该字符串的开头,然后根据距离数移动输入的其余字母 示例1:字符串-->Ali&Char-->D D和A之间的距离-->3 结果:DAol 示例2:字符串-->测试和字符-->R R和T之间的距离-->-2 结果:RTcqr 该程序还应该能够解码输入 示例1:DAol-->Ali 示例2:RTcqr-->测试 我试着用

因此,问题是编写一个java程序,从输入中获取一个字符串和一个字符,并使用如下方法对其进行编码:

编码方法:该方法将计算输入字符与输入字符串的第一个字母之间的距离,并将输入字符添加到该字符串的开头,然后根据距离数移动输入的其余字母

示例1:字符串-->Ali&Char-->D

D和A之间的距离-->3

结果:DAol

示例2:字符串-->测试和字符-->R

R和T之间的距离-->-2

结果:RTcqr

该程序还应该能够解码输入

示例1:DAol-->Ali

示例2:RTcqr-->测试

我试着用这个来编码,但没用

public static void encode() {
        
        String text = "Ali";
        String result1 = "";
        String result2 = "";
        String finalResult = "";
        char add = 'D';
        
        char[] chars = {'a', 'b' ,'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
        int dis = add - result1.charAt(0);
        result2 += add;
        result2 += result1;
        for (int i = 0; i < result2.length(); i++) {
            if (i < 2) {
                finalResult += result2.charAt(i);
            } else {
                int temp = result2.charAt(i) + dis;
                System.out.println("temp: "+temp);
                finalResult += chars[i];
            }
        }
        System.out.println(dis);
        System.out.println(finalResult);
        
    }
publicstaticvoidencode(){
String text=“Ali”;
字符串result1=“”;
字符串result2=“”;
字符串finalResult=“”;
char add='D';
char[]chars={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int dis=add-result1.charAt(0);
结果2+=add;
结果2+=结果1;
对于(int i=0;i
如果不想使用任何编码私钥,则不需要定义字符。下面的代码工作正常,您可以按照以下步骤操作

公共类主{
公共静态void main(字符串[]args){
字符串测试=“Ali”;
字符编码器='D';
字符串编码=编码(测试,编码器);
系统输出打印项次(编码);
System.out.println(解码(编码));
test=“test”;
编码器='R';
编码=编码(测试,编码器);
系统输出打印项次(编码);
System.out.println(解码(编码));
}
私有静态字符串编码(字符串文本、字符编码器){
char firstChar=text.charAt(0);
int距离=编码器-firstChar;
字符串编码=”“+编码器+第一字符;
对于(int i=1;i
输出:

DAol
Ali
RTcqr
Test

我不明白
Ali
怎么会变成
DAol
。为什么
o
?(l)m n(o)距离是三