-1

我写了这个简单的代码:

if (country.contentEquals("France"))
{
    language = "French";
}
else if (country.contentEquals("Germany"))
{
    language = "German";
}
else if (country.contentEquals("USA"))
{
    language = "English";
}

现在我想使用这个表来改变这个代码:

static String [][] mCountryLanguageTable = {{"France","French"},  
                                            {"German","Germany"},
                                            {"USA","English"}};

是否有任何 Java 类型或类可以做到这一点?这只是我写的一个简单的例子

4

5 回答 5

5

我建议使用 Map,或者更好的是 Java Locale。这可能已经为您完成了。

Map<String, String> countryLanguageMap = new HashMap<String, String>() {{
    put("France", "French");
    put("Germany", "German");
    put("USA", "English");
}};

String country = "USA";
String language = countryLanguageMap.get(country);
if (language == null) throw new IllegalArgumentException("No mapping for country " + country);
于 2013-06-07T13:38:31.050 回答
1

那这个呢:

String language = null;
String country = ?? //Get your country here

switch(country){
    case "France":
        language = "French";
        break;

    case "US":
        language = "English";
        break;

    case "Germany":
        language = "German";
        break;

    default:
        language = "Not a valid Country selected";
}

System.out.println("Country = " + country + ", Language = " + language);

注意:switchJava 7 及更高版本支持条件内的字符串...

于 2013-06-07T13:49:45.260 回答
0

我建议使用 HashMap。 http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html

HashMap 是将键与值配对的关联表。在这种情况下,您的键是国家,值是语言。

基本示例:

import java.util.*;

public static void main(String[] args) {
    HashMap countryLanguageTable = new HashMap();
    countryLanguageTable.put("France", "French");

    System.out.println(countryLanguageTable.get("France")); //prints "French"
}
于 2013-06-07T13:41:32.187 回答
0

做这种事情的最佳数据结构是 Map。如果您可以将 mCountryLanguageTable 更改为 Map,只需创建一个地图。否则,这里是代码:

    Map<String, String> map = new HashMap<String, String>();
    for (String[] tuple : mCountryLanguageTable) {
        map.put(tuple[0], tuple[1]);
    }
    language = map.get(country);
于 2013-06-07T13:41:47.843 回答
0

这个如何?

public static String getLanguage(String country) {
    for (int i = 0; i < mCountryLanguageTable.length; i++) {
        if (mCountryLanguageTable[i][0].equals(country)) return mCountryLanguageTable[i][1];
    }
    return null;
}
于 2013-06-07T13:38:08.890 回答