如何在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 有一个接受字符数组的构造函数。
我应该在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 有一个接受字符数组的构造函数。