正确使用try catch

时间:2016-04-19 17:21:18

标签: java try-catch

在我正在编写的Java程序中,我有一组三对文本字段(它们从羽毛球游戏中获得分数)。但是,在比赛中,根据结果可以有2或3场比赛。因此,可能使用所有3对文本字段或仅使用2对。我不是用户必须指出分数(在输入大量分数时太费时)所以我使用了这个。

    int[][] scores = new int[3][2];
    for(int i = 0;i < scores.length;i++){
        for(int j = 0;j < scores[i].length;j++){
            try{
                scores[i][j] = Integer.parseInt(mm.getDoublesTextField(i, j).getText());
            }catch(NumberFormatException ex){
                scores[i][j] = -1; //set to negative if game not played
            }
        }
    }

使用负整数是否正确,因此尝试捕获以解决此问题还是有更传统/有效的方法?

1 个答案:

答案 0 :(得分:0)

Java中的数组总是长度相同,你应该使用像地图,列表等这样的动态大小结构。

https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

HashMap<Integer, Integer> hm = new HashMap<>();
hm.put(12,1);

有一个例子(不是我的)。希望它可以帮到你。

Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "Casillas");     map.put(15, "Ramos");
map.put(3, "Pique");        map.put(5, "Puyol");
map.put(11, "Capdevila");   map.put(14, "Xabi Alonso");
map.put(16, "Busquets");    map.put(8, "Xavi Hernandez");
map.put(18, "Pedrito");     map.put(6, "Iniesta");
map.put(7, "Villa");

// Imprimimos el Map con un Iterador
Iterator it = map.keySet().iterator();
while(it.hasNext()){
  Integer key = it.next();
  System.out.println("Clave: " + key + " -> Valor: " + map.get(key));
}

这是输出:

Clave: 16 -> Valor: Busquets
Clave: 1  -> Valor: Casillas
Clave: 18 -> Valor: Pedrito
Clave: 3  -> Valor: Pique
Clave: 5  -> Valor: Puyol
Clave: 6  -> Valor: Iniesta
Clave: 7  -> Valor: Villa
Clave: 8  -> Valor: Xavi Hernandez
Clave: 11 -> Valor: Capdevila
Clave: 14 -> Valor: Xabi Alonso
Clave: 15 -> Valor: Ramos