如何在java中编写编码和解码的for循环?当我输入一个字符串时,程序只编码一个字母。大学一级课

How to write a for loop for encoding and decoding in java? the program only encode one letter when I enter a string. College level 1 lesson

我应该在class中写一个编解码程序,然后在main中使用。程序需要每个字母的位置增加2.

当我运行程序时,问题是当我输入一个字符串(如cookie)时,只有最后一个字母被编码。这是一个Screenshot of program running.

我的程序有什么问题。

谢谢。

课程非常基础,作业禁止学生导入任何其他 java 方法,例如 base64.Only 使用入门代码。

我也会把代码放在这里

public class 简单密码 {

/*
 * comments here to overview the method
 */
public String encode(String text) {
    String result = "";
    
    
    char[] chars = text.toCharArray();
    int length = chars.length;
        
    
            
    for (char x: chars) {
        
        x+=2;
        
        result = Character.toString(x);
        
    }
    
    
    // ToDo
    // convert text into char array
    // reverse the array using provided method (see below)
    // loop over array adding 2 to each element
    // convert the char array back to a String named result
    // return the resulting String.
    return result;
}

主要问题是您在每次迭代中都覆盖了结果。 相反,您想将字符附加到结果字符串。 你可以简单地用

result = result + Character.toString(x);
result += Character.toString(x); // shorter version
result += x; // java can append characters to strings without explicit conversion

根据评论 - 即使它正在工作 - 也不是所需的解决方案。任务是创建一个新的字符数组并填充它。

通过创建一个与原始数组长度相同的新数组,遍历数组的索引 ( for (int i=0; i<chars.length; i++) ) 并针对每个索引将更新后的字符写入新数组来做到这一点。字符串 class 有一个接受字符数组的构造函数。