Java将字母转换为2D数组中的数字

时间:2014-03-16 07:05:54

标签: java multidimensional-array integer

我有一个数组:[[a, b], [c, d], [e, f]]

abcdef等数组值必须转换为数字(整数)

让我们说a = 0, b = 1, c = 2, ..., f = 5

因此,转换结果应为:[[0, 1], [2, 3], [4, 5]]

如何用Java做到这一点?

4 个答案:

答案 0 :(得分:1)

字符是连续的(并存储为数字) - 所以基本上,您要查找给定字符与'a'之间的差异:

char[][] chars = /* fill the array */;

for (int i = 0; i < chars.length; ++i)
    for (int j = 0; j < chars[i].length; ++k) {
        // To produce an int value (e.g., replace 'a' with 0):
        chars[i][j] -= 'a'; 

        // If you want a printable char (e.g., replace 'a' with '0')
        // comment out the above statement and use this one instead:
        // chars[i][j] = chars[i][j] - 'a' + '0';
    }
}

答案 1 :(得分:1)

ASCII /&#39; a&#39;的十进制值是97.
我认为你有一系列的人物。

将任何字符转换为整数都会返回其十进制/ ascii值。

char ch = 'a'; //define character
int ch_ascii = (int)ch; // get its ascii/decimal value
System.out.println(ch_acii); //Ascii of 'a' = 97

您将获得97作为输出。

所以迭代你的二维数组。

将Typecast字符转换为整数并将97减去它。 您将以您想要的方式获得输出。

希望这会有所帮助。 评论是否需要进一步的帮助。

答案 2 :(得分:1)

使用ASCII值,然后将它们的回合例如a到z 97到122减去sentinel值97,你将得到你的结果

答案 3 :(得分:0)

试试这个:

    String[][] test = {{"a", "b"}, {"c", "d"}};
    for (int i=0; i<test.length; i++) {
        for (int o=0; o<test[i].length; o++) {
            Log.d("AWAISKING_OLD", "--------------");
            Log.d("AWAISKING_OLD", ""+test[i][o]);
            test[i][o] = test[i][o].replace("a", "1");
            test[i][o] = test[i][o].replace("b", "2");
            test[i][o] = test[i][o].replace("c", "3");
            test[i][o] = test[i][o].replace("d", "4");
            Log.d("AWAISKING_NEW", ""+test[i][o]);
            Log.d("AWAISKING_OLD", "--------------");
        }
    }