当前位置: 首页 > 面试题库 >

为什么Java中的不间断空格不是空格字符?

羊慈
2023-03-14
问题内容

在寻找一种适当的方法来从解析的HTML中修剪出不间断的空间时,我首先偶然发现了Java的spartan定义String.trim()至少对此进行了正确的记录。我想避免显式列出适合修剪的字符,因此我假设在Character类上使用Unicode支持的方法将对我有用。

那就是我发现Character.isWhitespace(char)明确排除不间断空格的时候:

它是Unicode空格字符(SPACE_SEPARATORLINE_SEPARATORPARAGRAPH_SEPARATOR),
但也不是不间断空格'\u00A0''\u2007''\u202F')。

这是为什么?

相应的.NET等效项的实现较少区分。


问题答案:

Character.isWhitespace(char)老了。真的很老 Java早期所做的许多事情都遵循C的约定和实现。

十多年来,现在,这些事情似乎是错误的。考虑一下它可以证明事情发生了多大的变化,即使在Java的早期和.NET的早期之间也是如此。

Java努力做到100%向后兼容。因此,即使Java团队认为更正最初的错误并在从Character.isWhitespace(char)返回true的字符集中添加不间断空格也很好,但他们却不能这样做,因为几乎可以肯定存在的软件完全依赖于当前的实现方式。



 类似资料:
  • 问题内容: 我遇到的情况是,来自html textarea或输入的用户输入的数据有时被编码为(不间断空格)而不是空格(当编码为utf-8 json时)。 我相信这是Firefox中的错误,因为我知道用户并不是故意在不间断的空格中放置空格。 Ruby中还有两个错误,其中一个可以用来抵抗另一个。 出于任何原因不匹配。 但是,这绝对不应该匹配)并且两者都将匹配,但是我认为这是处理问题的不理想方法。 还有

  • 问题内容: 是否可以在HTML中插入制表符,而不必键入四次? 问题答案: 使用CSS更干净。尝试或酌情改为。

  • 问题内容: 我有一些道具,其字符串可能包含&等字符。它还包含空格。我想用替换所有空格。 有没有简单的方法可以做到这一点?请记住,我不能只使用以下语法进行渲染: 因为我首先必须用其标记替换任何HTML实体。我不想这样做,它似乎太低了。 有办法吗? 问题答案: 代替使用HTML实体,您可以使用Unicode字符,它指向(U + 00A0 NON-BREAKING SPACE):

  • 问题内容: 我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个int),但是我似乎无法正常运行。 你能告诉我,我做错了什么吗?PS:我也尝试过\ W“和\ S” 问题答案: 更换 与 它将起作用,因为字符串是不可变的,因此不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配给由返回的字符串 另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。 而且,您也

  • 对于这个程序,它要求用户输入他们的全名。然后,它通过在名字和姓氏之间的空格处将它们分开来排序名字和姓氏。但是,indexOf()无法识别空格并且只返回-1。为什么?谢谢。 以下是PracticeIt的提示: 编写一个名为process Name的方法,该方法接受控制台的Scanner作为参数,并提示用户输入他或她的全名,然后以相反的顺序打印名称(即姓氏、名字)。您可以假设只会给出名字和姓氏。您应该

  • 本文向大家介绍css中定义class时,中间有空格和没空格的区别是什么?相关面试题,主要包含被问及css中定义class时,中间有空格和没空格的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 没空格表示该元素需同时拥有这两个class 有空格表示第二个元素是第一个元素的后代