我在使用 ACM 的 Java 中使用凯撒密码有问题。这是我的代码:
import acm.program.*;
public class Ceasar extends ConsoleProgram{
public void run() {
println("This program encodes a
message using a Caesar cipher.");
int shifter=readInt("Enter the number of character positions to shift: ");
String msg=readLine("Enter a message :");
String Solution=encodeCaesarCipher(msg,shifter);
println("Encoded message: "+Solution);
}
private String encodeCaesarCipher(String str,int shift){
String result="";
for (int i=0;i<str.length();i++){
char helper=str.charAt(i);
helper=(helper+shift);
if (helper>'Z'||helper>'z') helper =(helper-26);
if (helper<'A'||helper<'a') helper=(helper+26);
result= result+helper;
}
return result;
}
}
当我编译我有这些错误:
Ceasar.java:21: error: possible loss of precision
helper=helper+shift;
^
required: char
found: int
Ceasar.java:22: error: possible loss of precision
if (helper>'Z'||helper>'z') helper =helper-26;
^
required: char
found: int
Ceasar.java:23: error: possible loss of precision
if (helper<'A'||helper<'a') helper=helper+26;
^
required: char
found: int
3 errors