java - 在for循环中比较两个数组的元素(java)?

标签 java arrays encryption char compare

这似乎是一个与数组和 Java 中的比较相关的非常常见的问题,但是我在所有这些问题中都找不到适合我的情况的正确答案。

在这个应用程序中,我试图制作一个程序来“加密”用户给出的文本。例如:用户给出字符“a b c”,程序将其返回为“@ # $”。但正如您可能注意到的,我的代码存在一些问题 “pozita[i] = j;”。 为什么这段代码不起作用?它没有给我一个错误?或者是否可以将其作为“new pozita[i]”或类似的东西?

好吧,如果有人能帮助我,我会很高兴。我被困了一段时间。提前致谢! :)

import java.util.*;
import javax.swing.*;
import java.awt.*;

public class TestPerProgram extends JFrame
{
    char[] alfabeti = {'a','b','c','r','n','t'};
    char[] kodimi = {'@','#','%','*','^','$'};
    int[] pozita;
    //Scanner merr = new Scanner(System.in);

    String fn = JOptionPane.showInputDialog("Jepe tekstin:");
    char[] input = fn.toCharArray();

    void numro()
    {
        for (int i=0; i<=input.length; i++)
        {
            for(int j=0; j<=input.length; j++)
            {
                if(alfabeti[j] == input[i])
                {
                    pozita[i] = j;
                    System.out.println(pozita[i]);
                }
            }
        }

        /*
        for (int k=0; k<=input.length; k++)
        {
            System.out.println(pozita[k]);
        }
        */

    }

    public static void main(String[] args)
    {
        TestPerProgram pjesa = new TestPerProgram();

        pjesa.numro();

    }

}

最佳答案

我不是 100% 清楚你的算法应该如何工作,但看来你可能想要替换该行

pozita[i] = j;

pozita[i] = kodimi[j];

现在,您只是将匹配索引写入pozita,而不是替换字符。

如果我的假设是正确的,你也会改变

int[] pozita;

char[] pozita;

并将其初始化为长度为input.Length的数组。

关于java - 在for循环中比较两个数组的元素(java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371108/

相关文章:

java - 缓存 MethodHandles.lookup() 的结果?

java - 尝试为 hibernate 条件搜索制定方法

java - 如何使用 Dagger 正确实现回调进行依赖注入(inject)

php - 多维数组array_sum

c++ - 在对字符串进行排序时在 C++ 中使用 sort()

mysql - 使用 AES_ENCRYPT 在 Eloquent 模型中加密

java - 如何查找一个点是否存在于哪个多边形中

python - 使用 numpy 数组计算累积最小值

c - OpenAES/OpenSSL 兼容性

visual-c++ - 微软的 cryptoAPI "Microsoft Enhanced RSA and AES Cryptographic Provider"选择在 win7 上不起作用