Ho un input di dizionario. Il dizionario viene iterato per sostituire lo key
dal dizionario nel testo. Ma la funzione replaceAll
sostituisce anche lo subString
.Come assicurarsi che replaceAll sostituirà un'intera parola e non una sottostringa
come assicurare che corrisponderà la parola intera (nel suo complesso e non come una subString
)
String text= "Synthesis of 1-(2,6-dimethylbenzyl)-1H-indole-6-carboxylic acid [69-3] The titled compound (883 mg) sdvfshd[69-3]3456 as a white solid was prepared"
dictionary= {[69-3]=1-(2,6-dimethylbenzyl)-1H-indole-6-carboxylic acid }
for(Map.Entry<String, String> entry : dictionary.entrySet()){
text=text.replaceAll("\\b"+Pattern.quote(entry.getKey())+"\\b", entry.getValue());
}
Hai provato a controllare gli elementi per 'uguale' prima di sostituirlo? – Smutje
Non ho capito la domanda ... cosa intendi per uguale ??? Sto usando tutto il testo per rimpiazzarlo e non lo ho intonato. – user2832203