编辑:
我有这样的字符串:
String value1 = "xyzz#@#$%helloworldtestdata"
或
String value1 = "xyzztestcase" or String value1 = "notincludedxyzztestcase"
和
String value2 = "xxxyz! xyyz xyzz xyyz"
我试图用相应的单词过滤掉每个字符串。到目前为止,我有这个代码,它没有问题,但没有使用value1
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));
}
}
如果我在这里使用value2是我得到的输出:
test1 test3 test4 test3
但如果我使用value1,我会得到这个:
test4#@#$%helloworldtestdata
如何过滤掉地图上未包含的部分,键但不会弄乱value1的空格?
答案 0 :(得分:-1)
replaceAll
方法只是取s(地图中的键)的值,并将其替换为地图中s的值。根据您的描述,类似于您想要做的事情是做一个
value2 = value2.replaceAll("#@#$%helloworldtestdata", "");
这会将字符串#@#$%helloworldtestdata
替换为空字符串。
要在方法中重新分配,您需要将以下内容添加到地图中:
map.put("#@#$%helloworldtestdata", "test5");
(test5只是一个例子)
添加它不会弄乱你在value1中的空格,因为它所寻找的字符串(正则表达式)没有针对你正在寻找的任何其他字符串进行更改。
答案 1 :(得分:-2)
我不知道我使用过,但我在我的代码中使用。
var =“如何设置爱”
我只是用一套来获得我想要的价值。 print var [:2]
是的,如果你替换只是使用 x = var.replace(“我将成为”,“如何”)
如果我发言,请纠正我