我实际上正在开发一个解析器,而且我卡在一个方法上。用另一个替换特定的字符串 - String#replaceAll()
我需要清理某些句子中的特定单词,这意味着用空格或null
字符来替换这些单词。 现在,我想出了这个代码:
private void clean(String sentence)
{
try {
FileInputStream fis = new FileInputStream(
ConfigHandler.getDefault(DictionaryType.CLEANING).getDictionaryFile());
BufferedReader bis = new BufferedReader(new InputStreamReader(fis));
String read;
List<String> wordList = new ArrayList<String>();
while ((read = bis.readLine()) != null) {
wordList.add(read);
}
}
catch (IOException e) {
e.printStackTrace();
}
for (String s : wordList) {
if (StringUtils.containsIgnoreCase(sentence, s)) { // this comes from Apache Lang
sentence = sentence.replaceAll("(?i)" + s + "\\b", " ");
}
}
cleanedList.add(sentence);
}
但当我查看输出,我得到了所有的单词的出现次数的一个空格代替我sentence
更换。
有没有人可以帮我取代只有我的句子被替换的确切单词?
提前致谢!
'sentence.replaceAll( “(我)\\ B'” + S + “\\ B”,““);' - 你省略前导'\ B'字边界。 –