我觉得我非常接近解决这个问题。提供了一个字符串,我想将字符串中的char转换为int,将另一个方法(getKey
)的值添加到此数字,如果结果大于26,则减去26.然后,转换为新的int
到char
,最后将char
放在string
的末尾。截至目前,它只是简单地返回带有空格的输入,这是哈哈的一半。
有趣的是,取代
msg.replace(msg.charAt(i), btc); // from the bottom
与
msg += btc;
启动无限循环。任何建议都会非常感激!
String msg = "";
int key;
int cnum;
for(int i = 0; i< message.length();i++){
if(Character.isLetter(message.charAt(i))){
msg += (message.charAt(i));
}
}
for(int i = 0; i< msg.length(); i++){
char ch = msg.charAt(i);
key = getKey();
cnum = (int)ch + key;
if(cnum > 26){
cnum -= 26;
}
char btc = (char)cnum;
msg.replace(msg.charAt(i), btc);
}
return msg;
答案 0 :(得分:1)
替换msg.replace(msg.charAt(i), btc);
与msg = msg.replace(msg.charAt(i), btc);
答案 1 :(得分:0)
你的问题在线
msg.replace(msg.charAt(i),btc);
由于String是不可变的,String.replace()将返回一个新字符串,而不是修改现有的String。
我建议您使用StringBuilder(),附加替换的字符或附加现有的字符。