3

我有一个问题,但目前没有解决方案。我拥有的是大约 300 个字符串,例如:

  1. “美国纽约”;
  2. “USWSHGNT”;

我要做的是比较这些字符串之一是否被请求字符串并返回如下内容:

  1. “美国,纽约”;
  2. “美国,华盛顿”;

那么有什么好的解决方案吗?而且我不能使用java 1.7。只有1.6。

4

3 回答 3

6

创建一个键到值的映射,然后只需查找第一个值作为键,它就会为您提供值。

或者,您可以创建一个枚举,其中枚举是键,枚举的 toString 是您的值。

对于这种情况,我更喜欢地图解决方案而不是枚举。

地图示例

public abstract class LocationHelper {
    public static Map<String, String> locations = new HashMap<String, String>();

    static {
        //either put individual elements into the map or
        //read in from external file etc.
    }
}

在另一个类中,您可以通过执行以下操作来获取值。

System.out.println(LocationHelper.locations.get("USNWYRK"));

这将打印“美国,纽约”

注意对于不熟悉该static { }块的任何人,这是一个静态初始化程序,它对于填充静态变量(如地图)很有用。这与一个实例初始化器不同,{ }它是每个实例的预构造器初始化器。

于 2012-12-24T22:15:13.513 回答
3

您可以创建一个包含stringCode;stringValue便于维护的 CSV 文件,然后在您的应用程序启动时从该文件构建一个哈希表/映射。

这看起来像:

USNEWYRK;USA, New York
USWSHGNT;USA, Washington

一旦这些值被映射,应该很容易返回用户需要知道的任何内容。

于 2012-12-24T22:18:34.340 回答
0

任何类型的哈希表/映射都应该有效。将键设为第一个字符串,将值设为第二个字符串。

顺便说一句,您可以在 JSON 字符串中输入所有键和值,然后使用 JSON 阅读器将其转换为地图对象,而不是编写代码单独输入每一个。

于 2012-12-24T22:14:55.783 回答