多级数组中的String和Integer

时间:2011-09-28 20:53:43

标签: java android arrays string multidimensional-array

我正在努力做比课堂作业要求更多的事情。最终我将有以下随机的统计数据。我无法弄清楚如何对数组中的数字部分进行数学运算。现在,我使用String来存储数组,数值被存储为字符串。我试过做一个Object [] [] ....我无法弄清楚如何在对象上做数学。

有没有办法将多维(堆叠?)数组的某些值存储为字符串,将其他值存储为整数?

我知道它不仅仅显示数组的偶数对象。我更改了代码,因此更容易获得帮助。我确实在家里使用这个版本。

我尝试使用Initialising a multidimensional array in Java上的信息,但它没有提供我可以开展工作的解决方案。

非常感谢!

import java.util.Random;

public class StackedArrayTest {
    public static void main(String[] args) {
        String[][] stats = new String[][] { { "Str", "6" }, { "Con", "3" },
                { "Int", "5" }, { "Wis", "8" }, { "Dex", "2" },
                { "pAtk", "0" }, { "mAtk", "0" }, { "AC", "0" },
                { "Mana", "0" }, { "HP", "0" } };

        System.out.println("There are " + stats.length
                + " objects in the array.");
        System.out.println("The first object in the array is: " + stats[0][0]
                + ".");
        System.out.print("Even objects in array are:  ");

        for (int i = 0; i < stats.length; i = i + 1) {
            if (i <= stats.length - 3) {
                stats[i][1] = (stats[i][1]);
                System.out.print(stats[i][1] + ", ");
            } else
                System.out.println(stats[i][1]);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

使用Map<String, Integer>或修改

    for(int i=0; i < stats.length; i = i + 1) {
        if ( i <= stats.length - 3) {
            stats[i][1] = (stats[i][1]);
            System.out.print(stats[i][1] + ", ");
        }
        else System.out.println(stats[i][1]);
    }

    for(int i=0; i < stats.length; i = i + 1) {
        if ( i <= stats.length - 3) {
            try {
                System.out.print(Integer.parseInt(stats[i][1]) + ", ");
            } catch(NumberFormatException ignore){/* ignore this */}
        }
        else {
            try {
                System.out.println(Integer.parseInt(stats[i][1]) + ", ");
            } catch(NumberFormatException ignore){/* ignore this */}
        }
    }

答案 1 :(得分:0)

我建议您使用“HashMap”,因为它可以定义键和值的类型

HashMap<String, Integer> stats = new HashMap<String, Integer>();
stats.put("Str", 6);
stats.put("Con", 3);
// And so on...
System.out.println( ""+(stats.get("Str")+1) ); //4