Java 过滤掉地图中不需要的字符串
编辑: 我有这样的字符串:Java 过滤掉地图中不需要的字符串,java,arrays,dictionary,Java,Arrays,Dictionary,编辑: 我有这样的字符串: String value1 = "xyzz#@#$%helloworldtestdata" 或 及 我试图过滤掉每个字符串及其对应的单词。到目前为止,我有这段代码,它很好,但不具有值1 Map<String, String> map = new HashMap<String, String>(); map.put("xxxyz!", "test1"); map.put("xxxyz?", "test2"); map.p
String value1 = "xyzz#@#$%helloworldtestdata"
或
及
我试图过滤掉每个字符串及其对应的单词。到目前为止,我有这段代码,它很好,但不具有值1
Map<String, String> map = new HashMap<String, String>();
map.put("xxxyz!", "test1");
map.put("xxxyz?", "test2");
map.put("xyyz", "test3");
map.put("xyzz", "test4");
for (String s : map.keySet()) {
if (value2.contains(s)) {
value2 = value2.replaceAll(s, map.get(s));
}
}
但如果我使用值1,我得到的是:
test4#@#$%helloworldtestdata
如何筛选出地图上未包含的部分,关键点但不弄乱值1的空格?我不知道如何使用,但我在代码中使用了 var=“如何设定爱” 我只使用一个集合来获得我想要的值。 打印变量[:2] 我会得到“如何” 是的,如果你需要更换,就用它 x=var.replace(“我将是”,“如何”) 它会得到“我会被爱”
如果我用flase纠正我,
replaceAll
方法只是简单地获取你的s值(地图中的键),然后用你的s值替换它。根据你所描述的,类似于你想做的事情是做一个
value2=value2.replaceAll(“#@#$%helloworldtestdata”,”)代码>
这将用空字符串替换字符串@$%helloworldtestdata
要在方法中执行此重新分配,您需要将以下内容添加到映射中:
map.put(“#@#$%helloworldtestdata”、“test5”)代码>
(test5只是一个示例)
添加此项不会弄乱value1中的空格,因为它要替换的字符串(regex)尚未更改为您要查找的任何其他字符串。什么是过滤掉?如果您只想消除它,String.replace(“begone”),它不清楚您想做什么。请澄清你的目标;也许如果你发布4-5个不同的输入和预期输出示例,我们可以推断出你试图实现的规则。对不起,我必须编辑这篇文章。我想做的是只获取地图上的单词,并删除其他未包含的字符串。我希望这是有道理的。非常感谢。您能展示一个完整的工作代码示例吗?它应该编译和运行,并产生您在您的终端上看到的确切输出。另外,请更详细地解释您所说的“我正试图用对应的单词过滤掉每个字符串”的意思
Map<String, String> map = new HashMap<String, String>();
map.put("xxxyz!", "test1");
map.put("xxxyz?", "test2");
map.put("xyyz", "test3");
map.put("xyzz", "test4");
for (String s : map.keySet()) {
if (value2.contains(s)) {
value2 = value2.replaceAll(s, map.get(s));
}
}
test1 test3 test4 test3
test4#@#$%helloworldtestdata