如何让数组互相交互?

时间:2013-10-03 01:04:21

标签: java arrays

我在完成学业任务时遇到了麻烦:

  

编写一个程序来创建两个数组,即asciiArray和   decimalArray每个52个元素。在asciiArray中,存储字母   英文字母;小写和大写字母。在里面   decimalArray,存储每个的相应十进制值   asciiArray中特定位置的字母。例如,如果   asciiArray [0]保持'A',然后decimalArray [0]将保持值65。   将这些数组传递给方法displayDecValue。在方法里面,   提示用户输入英文字母的任何字母   并显示相应的十进制值。

我有一些编码,但我不知道如何使数组相互交互并返回值。对不起,如果这很简单;我以前从未做过Java。我们也不能使用任何高级编写代码(它是初学者的Java)。

import java.util.Scanner;

public class ParallelArrays {
    public static void main (String [] args) {
        char[] asciiArray = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
                              'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
                              'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                              'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                              'W', 'X', 'Y', 'Z' };
        int[] decimalArray = {97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,
                              114,115,116,117,118,119,120,121,122,65,66,67,68,69,70,71,72,73,74,
                              75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90};
        displayDecValue(asciiArray, decimalArray);
    }

    public static void displayDecValue(char [ ] ascii, int [ ] dec) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a letter (a-z or A-Z): ");

        ascii = input.next().charAt(0);

        dec[0] = (int)ascii[0];

        System.out.printf("Decimal value of %c is: " + dec[0], ascii);
    }
}

2 个答案:

答案 0 :(得分:3)

以下是你应该想知道的事情

1)您正在将用户的输入存储到数组变量ascii中。这会发生什么?

2)您正在使用ascii [0]在索引位置0重新分配预定义的十进制数组。这是什么意思?

3)你如何在ascii数组中搜索char(提示:循环)并将其与dec数组匹配?

4)print语句是否遵循C或Java语法?

然后您就可以轻松修复代码了。

答案 1 :(得分:0)

您无需手动输入十进制数组值。你可以做类似下面的事情。 如果我们将char转换或强制转换为int,我们将获得该字符的十进制值。

例如       int output= (int)'a'; //此处的输出为97,相当于字符'a'的十进制值。

    int[] decimalArray = new int[asciiArray.length];
    for (int i = 0; i < asciiArray.length; i++) {
        decimalArray[i] = (int)asciiArray[i];
    }

完整的例子如下。

import java.util.Scanner;

public class ParallelArrays {
    public static void main(String[] args) {
        char[] asciiArray = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
                'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
                'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
                'U', 'V', 'W', 'X', 'Y', 'Z' };

        int[] decimalArray = new int[asciiArray.length];
        for (int i = 0; i < asciiArray.length; i++) {
            decimalArray[i] = (int)asciiArray[i];
        }
        displayDecValue(asciiArray, decimalArray);
    }

    public static void displayDecValue(char[] ascii, int[] dec) {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a letter (a-z or A-Z): ");

        char inputChar = input.next().charAt(0);

        for (int i = 0; i < ascii.length; i++) {

            if (inputChar == ascii[i]) {
                System.out.printf("Decimal value of '" + ascii[i] + "' is: "
                        + dec[0]);
                break;
            }

        }

    }

}