對於我的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] + " ");
}
}
}
}
正如未來代碼組織的註釋一樣,在代碼組之間留下空格(比如變量聲明和方法)可以幫助您查看哪個區域正在做什麼。不這樣做會讓它看起來非常混亂,在某些場合看起來有點難以閱讀。 – IHazABone