我在String中有一个奇怪的空格字符

时间:2012-10-04 18:04:14

标签: java whitespace

我有一个Java方法,在短语中查找单词,如果找到单词,则将其从短语中删除。这个词和短语可以是任何东西。他们是变种。这是我的代码:

private String removeWord( String phrase, String word ) {
    phrase = phrase.replaceAll( "(?i)" + word , "" );
    return phrase;
}

我遇到的问题是传递给此方法的短语:

  

古罗马帝国是如此庞大,如此强大,如此雄心勃勃,以至于它具有强大的影响力   几乎所有触及的东西。罗马的影响如此广泛,即使在今天,语言,文化,   大多数西方国家的法律和政府仍然是罗马的标志。

在文本中查找和删除的单词是“罗马帝国”,但它无法删除它。经过一番调查,我发现这是因为短语中的空格不是正常的空格。当我在Notepad ++中复制短语的文本并搜索相同的单词时,我找不到它!

请参阅随附的屏幕截图。第5行是我手动编写的一行,当你看到Notepad ++能够找到它时,却找不到第1行中的“罗马帝国”。当我在文件中计算出“罗马帝国”时,它只发现了一次!

那是什么其他奇怪的空间?!

enter image description here

-------------------------------------------- --------->>修改:更多详情:

我用Java编写了这段代码来检查两个空格之间的区别:

char a = ' ';
char b = ' ';

System.out.println( (int) a );  // Prints 160
System.out.println( (int) b );  // Prints 32

奇怪的是,2个空格看起来完全相同!

1 个答案:

答案 0 :(得分:1)

可能a non breaking space。你可以明确地查找它们或用\ s(又名[:space:])替换你的搜索字符串空格。