我有一个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
奇怪的是,2个空格看起来完全相同!