我有一个 Java 方法,可以在短语中查找单词,如果找到该单词,则将其从短语中删除。单词和短语可以是任何东西。它们是变体。这是我的代码:
private String removeWord( String phrase, String word ) {
phrase = phrase.replaceAll( "(?i)" + word , "" );
return phrase;
}
我遇到的问题是有一个短语传递给这个方法:
古罗马帝国如此庞大、如此强大和如此雄心勃勃,以至于它几乎对它所触及的一切都产生了强大的影响。罗马的影响如此广泛,以至于即使在今天,大多数西方国家的语言、文化、法律和政府仍然带有罗马的印记。
从文本中查找和删除的单词是“罗马帝国”,但它无法删除。经过一番调查,我发现这是因为短语中的空格不是正常空格。当我在 Notepad++ 中复制该短语的文本并搜索相同的单词时,我也找不到它!
请参阅随附的屏幕截图。第 5 行是我手动编写的一行,如您所见,Notepad++ 能够找到它,但在第 1 行中找不到“罗马帝国”。当我在文件中数“罗马帝国”时,它只找到了一次!
另一个奇怪的空间是什么?!
-------------------------------------------------- --- >> 编辑:更多细节:
我用 Java 编写了这段代码来检查两个空格之间的区别:
char a = ' ';
char b = ' ';
System.out.println( (int) a ); // Prints 160
System.out.println( (int) b ); // Prints 32
奇怪的是这两个空间看起来完全一样!