这似乎是一个与数组和 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/