1

我可以使用带有 Hashtable.containsKey(Object value) 的正则表达式吗?

有没有办法做下面的伪代码?

while ( myHashtable.containsKey(regex) ) {
    //TODO
};

我的正则表达式在哪里是“错误[0-9][0-9]?”

编辑:我正在设置来自后端 Java 程序的任意数量的错误消息,这些错误消息作为哈希表发送到 JSP。JSP 需要从散列表中显示这些错误消息。在 JSP 中使用哈希表是不可协商的。我只需要知道如何确保我们阅读所有错误消息。

4

2 回答 2

3

不是你建议的方式。

哈希表使用Object'shashCodeequals方法来快速找到您要查找的对象。

相反,您可以遍历哈希表的元素并查找匹配项,如下所示:

for (Map.Entry<String,Object> entry : myHashtable.entrySet){
    if (regex.matcher(entry.getKey()).matches()) {
        //TODO
    }
}
于 2012-01-05T18:14:16.543 回答
0

我没有对此进行任何测试,但是由于您要使用的函数需要一个 Object 并且您想使用正则表达式,因此您需要一个正则表达式的对象。

你可以给对象 Pattern 一个镜头:http ://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

于 2012-01-05T18:10:01.937 回答