【发布时间】:2021-03-01 04:47:53
【问题描述】:
我必须在Functionality.java 类中实现一个名为encodeCaesar 的静态公共方法,该方法使用凯撒加密对文本进行编码,而我是一个Java 新手。
签名:
encodeCaesar(String s, int val) : String该方法获取一个字符串值和一个整数值作为输入参数。字符串值中的字母(字符)将移动整数值。为简单起见,我可以假设只有字母,没有空格、数字或特殊字符。
在执行加密之前,字符串值应转换为小写。该方法应返回一个字符串,其中每个字母已根据指定的整数值移动。
示例:
encodeCaesar("Ac",3)返回"df"。如果给定的整数值小于 0 或大于 26,则应返回空字符串。
public class Functionality {
public static void main(String[] args) {
}
public static String encodeCaesar(String s, int val) {
char[] newString = s.toCharArray();
for (int i = 0; i < s.length(); i++) {
int newChar = newString[i] + val + 26;
// Handle uppercase letters
while (Character.isUpperCase(newString[i]) && newChar >= 65 + 26) {
newChar -= 26;
}
// Handle lowecase letters
while (Character.isLowerCase(newString[i]) && newChar >= 97 + 26) {
newChar -= 26;
}
newString[i] = (char) (newChar);
}
return String.valueOf(newString);
}
}
我的问题是,作为回报,它只给我真或假。我该如何解决:该方法应返回一个字符串,其中每个字符已根据指定的整数值移动。
【问题讨论】:
标签: java string replace char caesar-cipher