对于我的 Java 作业,我必须比较几个不同数组中的值和/或索引。该任务要求提示用户输入五个字母(大写或小写),并将它们存储在数组“lettersArray”中。我还有另外两个数组;一个名为“asciiArray”的char数组,包含所有大写和小写字符(因此有52个索引)和一个名为“decimalArray”的int数组,其中包含英文字符的相应十进制值(也有52个索引)。
然后我应该将它们传递给第二种方法。第二种方法需要确定用户输入的字母的十进制值。这就是我感到困惑的地方。我今天已经伪编码了一百次,只是看不出我哪里出错了。我需要将 lettersArray 中的每个值与 asciiArray 中的所有值进行比较以找到匹配项,然后从对应的 decimalArray 索引中获取值。当我打印 decimalArray 以检查值时,它们到处都是。
例如,当我输入字符 a、s、d、f 和 g 时,我得到 91、109、94、96 和 97。这些值对我来说似乎完全随机,我无法弄清楚在哪里我的程序搞砸了。如果你能帮忙的话,我会把所有的啤酒都给你买!
public class AverageLetter {
public static void main(String [] args) {
Scanner read = new Scanner(System.in);
char letterArray[] = new char[5];
System.out.println("Enter 5 English letters (a-z or A-Z): ");
for(int i = 0; i < 5; i++) {
System.out.print("Letter " + (i+1) + ": ");
letterArray[i] = read.next().charAt(0);
}
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char[] asciiArray = characters.toCharArray();
int[] decimalArray = new int[52];
for (int i=0; i<decimalArray.length; i++ ) {
decimalArray[i] = 65+i;
}
getAverage(letterArray, asciiArray, decimalArray);
}
public static void getAverage(char[] letter, char[] ascii, int[] decimal) {
for(int i = 0; i < letter.length; i++) {
for(int j = 0; j < ascii.length; j++) {
if(letter[i] == ascii[j]) {
System.out.print(decimal[j] + " ");
}
}
}
}