我尝试做的是将一个数值赋给一组邮政编码,然后在稍后的程序中使用该数值进行计算。我现在所拥有的是
if (zip == 93726 || zip == 93725 || zip == 92144) {
return 100;
}
else if (zip == 94550 || zip == 34599 || zip == 77375) {
return 150;
}然后我把这个变量用在计算中。将数字赋值给变量和计算都可以,但我遇到的显然是android只允许你有这么多行代码,并且我已经用光了使用if else语句的行数。我的问题是,这样做会更好吗?
我并不是想给每个zip指定一个城市,因为我已经看到他们在其他海报上提供了这样的服务。
发布于 2015-11-25 17:12:03
您可以创建一个Map,将每个邮政编码映射到一个整数。例如:
Map<Integer, Integer> zipCodeMap = new HashMap<>();
zipCodeMap.put(93726, 100);稍后,您可以从那里检索值。
Integer value = zipCodeMap.get(93726);现在,您仍然需要将每个邮政编码映射到一个值。我不会用Java代码这样做,而是使用数据库或从文本文件(例如csv)中读取。这主要取决于您的需求。
示例csv文件:
93726, 100
93727, 100
93726, 150从csv文件读取:
InputStream is = this.class.getResourceAsStream("/data.csv");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
String line;
while ((line = reader.readLine()) != null) {
String[] row = line.split(",");
int zip = Integer.parseInt(row[0].trim());
int value = Integer.parseInt(row[1].trim());
zipCodeMap.put(zip, value);
}
}
catch (IOException ex) {
// handle exceptions here
}
finally {
try {
is.close();
}
catch (IOException e) {
// handle exceptions here
}
}https://stackoverflow.com/questions/33912102
复制相似问题