2

我正在处理一些我有这个片段的代码

{

    user = "B";
    indice = 21;

    switch (user) {
        case "A":
            A[indice - 1] = "X";
            break;
        case "B":
            B[indice - 1] = "X";
            break;
        case "C":
            C[indice - 1] = "X";
            break;

    }

}

我想知道是否有一种可能的方法可以使这段代码更有效,所以我不必重写它 X 次可能还有更多的值,然后是我设置的开关的数量,任何帮助都会是很多建议是一个很大的帮助

4

2 回答 2

4

创建一个Map<String,String[]>, 将数组A, BandC放入其中,然后使用以下代码:

Map<String,String[]> arrayByName = new HashMap<String,String[]>();
arrayByName.put("A", A);
arrayByName.put("B", B);
arrayByName.put("C", C);
...
arrayByName.get(user)[indice-1] = "X";
于 2013-09-08T13:17:57.313 回答
2

如果你的开关的情况总是连续的(例如"A", "B", "C")并且总是单字符,你可以做一些类似的事情

String[][] master = {A, B, C};

...

master[user.charAt(0) - 'A'][indice - 1] = "X";
于 2013-09-08T13:21:32.483 回答