在我正在编写的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
}
}
}
使用负整数是否正确,因此尝试捕获以解决此问题还是有更传统/有效的方法?
答案 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