过滤掉地图中不需要的字符串

时间:2017-12-02 00:53:27

标签: java arrays dictionary

编辑:

我有这样的字符串:

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的空格?

2 个答案:

答案 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(“我将成为”,“如何”)

它会得到“我将被定为爱”

如果我发言,请纠正我