Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果键与精确字符串匹配,则将字符串替换为映射值_Java - Fatal编程技术网

Java 如果键与精确字符串匹配,则将字符串替换为映射值

Java 如果键与精确字符串匹配,则将字符串替换为映射值,java,Java,条目的迭代顺序未使用哈希表设置,因此在访问“电子书封面图像”之前,您似乎正在访问“图像” 您可能希望首先在映射中放置较长的键(如您在示例中所做的),因为它将按插入顺序(默认情况下)迭代条目。条目的迭代顺序未使用哈希表设置,因此看起来您在访问之前正在访问“Image”“电子书封面图片” 您可能希望首先在映射中放置较长的键(如示例中所示),因为它将按插入顺序(默认情况下)迭代条目。您希望得到什么结果?电子书c11111111 92424或(1111111111111和7697979)或724242或

条目的迭代顺序未使用
哈希表设置,因此在访问
“电子书封面图像”
之前,您似乎正在访问
“图像”


您可能希望首先在映射中放置较长的键(如您在示例中所做的),因为它将按插入顺序(默认情况下)迭代条目。

条目的迭代顺序未使用
哈希表设置,因此看起来您在访问
之前正在访问
“Image”
“电子书封面图片”


您可能希望首先在映射中放置较长的键(如示例中所示),因为它将按插入顺序(默认情况下)迭代条目。

您希望得到什么结果?
电子书c11111111 92424或(1111111111111和7697979)
724242或(1111111111111和76979)
?我运行了你的代码并得到:
724242或(1111111111111111和76979)
724242或(1111111111111111和76979)哈希表不维护插入顺序。如果你想这样做,请使用
LinkedHashMap
。当你运行我的代码时,你会得到这样的输出;电子书c11111111 92424或(1111111111111和76979)你期望得到什么结果?
电子书C1111111192424或(1111111111111111和76979)
或可能
724242或(1111111111111111和76979)
?我运行了你的代码,得到:
724242或(1111111111111111111和76979)
724242或(1111111111111111111111111111111111和76979)
Hashtable
不维护插入顺序。如果要这样做,请使用
LinkedHashMap
。当您运行我的代码时,您将得到如下输出:电子书c11111111 92424或(1111111111111和7697979)在该映射中,插入可以按任意顺序进行。@user739115:这将是问题中的重要信息。您需要按长度对键进行排序(最长优先)然后按该顺序循环。哈希表中的任何内容都不能神奇地为您做到这一点。插入可以按该映射中的任何顺序进行。@user739115:这将是问题中的重要信息。您需要按长度排序键(最长优先)然后按这个顺序遍历它们。
哈希表中的任何东西都不会神奇地为您做到这一点。
Map<String, String> hashtable = new Hashtable<>();
hashtable.put("eBook Cover Image", "724242");
hashtable.put("Cover Image", "95757");
hashtable.put("Image", "9242424");
hashtable.put("Composite", "7697979");
hashtable.put("Low-Res PDF (print)", "1111111111111111");
hashtable.put("Cover", "c11111111");

String s = "eBook Cover Image OR (Low-Res PDF (print) AND Composite)";

for (Map.Entry<String, String> m : hashtable.entrySet()) {
    s = s.replace(m.getKey(), m.getValue());
}
eBook c11111111 9242424 OR (1111111111111111 AND pppppppppppppppp)