我可以编写这样的代码,它只能在m和M之后旋转n和N
之后的字符public class solution {
public static String encode(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 'a' && c <= 'm' || c >= 'A' && c <= 'M') {
sb.append((char) ((int) c + 13));
continue;
}
if (c >= 'n' && c <= 'z' || c >= 'N' && c <= 'Z') {
sb.append((char) ((int) c - 13));
continue;
}
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(encode("firefly"));
}
}
所以如何调整它以将字符串也放入整数public static String encode(String s, int i)
,以便我将从26个字符中的数字i旋转。例如,如果我输入12作为int,那么它将不再从m或M开始旋转,但它将从l或L旋转,这看起来比在26个字符的中间位置更难。/ p>
答案 0 :(得分:1)
对于需要代码的小写字符:
int before = c - 'a';
int after = (before + i) % 26;
sb.append((char)('a'+(char)after));
大写字符的代码非常相似。