Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String_Hashmap_Replaceall - Fatal编程技术网

在Java中从文本文件中查找短语

在Java中从文本文件中查找短语,java,string,hashmap,replaceall,Java,String,Hashmap,Replaceall,我的目标是阅读一个文本文件,并找到某些单词来替换。然后,它将替换这些单词,并输出一个新的文本文件,该文件将替换这些单词。我的代码适用于单个单词,但如果我尝试用空格替换短语,它就不起作用。我拥有的是一个HashMap,其中包含我需要在文件中搜索的内容 HashMap<String, Integer> hm = new HashMap<>(); hm.put("null",0); hm.put("

我的目标是阅读一个文本文件,并找到某些单词来替换。然后,它将替换这些单词,并输出一个新的文本文件,该文件将替换这些单词。我的代码适用于单个单词,但如果我尝试用空格替换短语,它就不起作用。我拥有的是一个HashMap,其中包含我需要在文件中搜索的内容

 HashMap<String, Integer> hm = new HashMap<>();

            hm.put("null",0);
            hm.put("max",1);
            hm.put("Do not repeat",2);
            hm.put("names",3);

如果我在诸如“请勿重复”之类的词中有空格,则此操作无效。我怎样才能让它适用于短语而不仅仅是单个单词?它完全跳过短语并输出新文件,只替换单个单词。

这与空格无关,是因为大写字母D

text.toLowerCase(Locale.ROOT)
将生成一个只包含小写字母的字符串,因此在其中找不到
“请勿重复”

您可以通过传递以下命令使
replaceAll
不区分大小写:

请注意,您可能会在正在搜索的字符串中遇到元字符问题。如果可能包含句点(
)之类的内容,则应引用
检查

text = text.replaceAll("(?i)" + Pattern.quote(check), "WRONG");

此外,由于您没有考虑单词边界,您可能会遇到。

这与空格无关,而是因为大写的D

text.toLowerCase(Locale.ROOT)
将生成一个只包含小写字母的字符串,因此在其中找不到
“请勿重复”

您可以通过传递以下命令使
replaceAll
不区分大小写:

请注意,您可能会在正在搜索的字符串中遇到元字符问题。如果可能包含句点(
)之类的内容,则应引用
检查

text = text.replaceAll("(?i)" + Pattern.quote(check), "WRONG");

此外,因为您没有考虑Word边界,您可能会碰到.

它不是空格,它是上行的D,不是。BTW,如果您想替换文字字符串,您应该考虑引用它,例如“代码>模式。引用(检查)< /代码>,以避免与元字符惊人的事情。或者只需使用ofc的替换。谢谢!我觉得很傻!你知道一种不用把文本文件改成小写的方法吗?你的意思是,如何不区分大小写?是的,我想检查一下,而不用把文件中的所有字母都改成小写!它不是空格,它是上限的D,不是。BTW,如果你想替换文字字符串,你应该考虑引用它,例如“代码>模式。引用(检查)< /代码>,以避免与元字符惊人的事情。或者只需使用ofc的替换。谢谢!我觉得很傻!你知道一种不用把文本文件改成小写的方法吗?你的意思是,如何不区分大小写?是的,我想检查一下,而不用把文件中的所有字母都改成小写!完美的正是我想学的!。非常感谢。完美的正是我想学的!。非常感谢。