Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Dictionary - Fatal编程技术网

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