Я на самом деле разрабатываю парсер, и я зацикливаюсь на методе.Заменить конкретную строку другим - 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 ("(я) \\ б?" + S + "\\ б"," «);' - вы опустили ведущий '\ b' границу слова. –