我正在尝试创建一个凯撒密码,一切都应该正常,但我收到了一个错误。
这是我的加密方法:
public static String encrypt(String plainText, int rotation) {
// TODO: implement
for (int i = 0; i < plainText.length(); i++ ){
char currentChar = plainText.charAt(i);
//ASCII 97 == a && 122 == z
if (currentChar >= 97 && currentChar <= 122){
char newChar = (char) (currentChar + rotation);
if(newChar < 97){
newChar = (char) (97 + (newChar - 122));
}
plainText.setCharAt(i, newChar);
}
}
return plainText.toString();
运行代码后,它返回此错误:
Error:(26, 26) java: cannot find symbol
symbol: method setCharAt(int,char)
location: variable plainText of type java.lang.String
我该如何解决这个问题?
最佳答案
看看setCharAt
-> 你可以清楚地看到它属于 StringBuilder
而不是 String
。
如果您想在String
上使用它,您可以首先创建一个StringBuilder
,然后调用.toString()
在该对象上:
StringBuilder plainText = new StringBuilder("Some string");
plainText.setCharAt(i, newchar);
String myStr = plainText.toString();
这似乎也是您最初计划做的事情,因为在 return
语句中您有 plainText.toString()
,并且没有理由调用如果它已经是一个 String
开头,则存在 toString()
。
关于java "Cannot resolve method ' setCharAt(int, 字符 )'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35404938/