Char to Int,更改int值,返回char,并添加到字符串

时间:2016-04-29 09:01:40

标签: java encryption caesar-cipher

我觉得我非常接近解决这个问题。提供了一个字符串,我想将字符串中的char转换为int,将另一个方法(getKey)的值添加到此数字,如果结果大于26,则减去26.然后,转换为新的intchar,最后将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;

2 个答案:

答案 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(),附加替换的字符或附加现有的字符。