当前位置: 首页 > 知识库问答 >
问题:

用数组值替换字符串中的字符的Java凯撒密码

樊腾
2023-03-14

好的,对于一个学校的项目,我试图制作一个方法,它将获取一个文件,使用凯撒密码“加密”它,然后将新的加密单词输出到一个输出文件中,读取文件中的所有单词,留给我们一个单独的加密文件。

我遇到的问题是我得到了一个

“意外类型。必需:变量。发现:值”错误

每当我试图用新角色替换角色时。

public static void encrypt(File inputFile, int key) throws FileNotFoundException
{
    char[] alpha = new char[26];
    for(char ch = 'a'; ch <= 'z'; ch++)
    {
        int i = 0;
        alpha[i] = ch;
        i++;
    }
    Scanner in = new Scanner(inputFile);
    while(in.hasNext())
    {   
        String word = in.next();
        word = word.toLowerCase();
        for(int i = 0; i < word.length(); i++)
        {
            for(int j = 0; j < alpha.length; j++)
            {
                if(word.charAt(i) == alpha[j])
                {
                    word.charAt(i) = alpha[j + key];       
                }
            } 
        }

    }  
}

共有1个答案

公西季
2023-03-14

由于字符串是不可变的,所以不能

word.charAt(i) = alpha[j + key];

考虑使用StringBuilder,例如

    StringBuilder buf = new StringBuilder ();
    for(int i = 0; i < word.length(); i++)
    {
        for(int j = 0; j < alpha.length; j++)
        {
            if(word.charAt(i) == alpha[j])
            {
                buf.append(alpha[j + key]);
            }
            else {
                buf.append (word[i]); // ??
            }
        }
    }

    // do something with buf ??
 类似资料:
  • 本文向大家介绍替换Java字符串中的子字符串,包括了替换Java字符串中的子字符串的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符串。 我们想将子字符串“ Dead”替换为“ Alive”。为此,让我们使用以下逻辑。在这里,我们使用了while循环,并在其中找到了要替换的子字符串的索引。这样,我们一个接一个地替换了整个子字符串。 以下是替换子字符串的完整示例。 示例 输出结果

  • ______________________________________。 我让程序使用这段代码,但现在我需要设置while循环。这是我当前的代码。 字符串word=“”;扫描仪键盘=新扫描仪(System.in); 我的while循环如何描述这个输出?

  • 问题内容: 我目前有一个包含字符A,B和C的字符串,例如,该字符串看起来像 其他不包含A,B或CI的随机变量想分别用“ A”,“ B”和“ C”替换A,B和C,这是我目前正在做的最好方法: 问题答案: 如果A,B和C是完全相同的单个字符,cletus的答案就可以正常工作,但是如果它们可以是更长的字符串,而您只是出于示例目的将它们称为A,B和C,则cletus的答案就可以。如果它们是更长的字符串,则

  • 问题内容: 我有一些带有以下格式的方程式的字符串。 我还有一个文本文件,其中包含每个变量的名称,例如: 等等… 什么是对我来说,写代码的最佳方式,使其在插头到处发生,并且对等? 问题答案: 对于string ,请使用以下函数:

  • 主要内容:replace() 方法,replaceFirst() 方法,replaceAll() 方法在 Java 中,String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll(),本文将详细介绍它们的使用方法。 replace() 方法 replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下: 其中,oldChar 表示被替换的字符串;newChar 表示用于替换的字符串。repla

  • 问题内容: 我有一个用逗号分隔的产品列表,并且由于该项目列表已被新产品项目替换,因此我试图用新产品项目列表来修改此CSV列表。 我正在尝试使用split fn转换为行,然后替换这些值,然后再次将列转换为行。还有其他可能吗? 输出为: 问题答案: 将您的逗号分隔列表转换为XML。使用数字表XQuery和获取具有它们在字符串中的位置的单独ID。使用带有to和order by的技巧构建逗号分隔的字符串。