出于 Character.isWhitespace 的目的,Java 是否将 'normal' space 视为白色 space?
Does Java regard a 'normal' space as whitespace for the purposes of Character.isWhitespace?
乍一看,这似乎很简单。可能是,但有几件事让我觉得我可能遗漏了一些东西。首先 the Java documentation for Character.isWhitespace 似乎排除了它。白色space允许和不允许的定义似乎非常明确('if and only if')并且第一行说not一个不间断的space.
我一直把普通的 'space' - 当你按下 space 条时得到的东西 - 视为 non-breaking space。
那么它在列表中的位置是什么?该列表在 this question 的最高评价答案中被认为是确定的 - 我只是读错了吗?
此外,this question 中最高答案的第一位评论者似乎有他的疑虑(在不同的上下文中)。然而,当我构造一段简单的代码来测试时,它表明正常的 space 是 whitespace 的一个实例,正如人们所期望的那样。
import static java.lang.Character.isWhitespace;
public class WhitespaceCheck {
public static void main(String[] args) {
Character test = ' ';
if (Character.isWhitespace(test)) {
System.out.println("Is whitespace!" );
} else {
System.out.println("Is not whitespace!" );
}
}
}
那么,我是不是看错了列表中的第一项,它是列表中的其他地方,还是列表本身就是错误的?
你错了; a non-breaking space 防止换行。它是一种特殊类型的 space 而不是允许换行的 "normal" 类型。如果 "normal" space 是 non-breaking space 那么当你到达屏幕边缘时,行永远不会换行,除非你每次都手动按下 return。
第一行说:
It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', '\u2007', '\u202F')
可在此处找到 SPACE_SEPARATOR 涵盖的 unicode whitespace 列表:
https://en.wikipedia.org/wiki/Whitespace_character
SPACE_SEPARATOR 的文档说它指的是一类 Unicode 字符,而不是特定字符。标题的'normal'space(通常是由space栏产生的)属于此类。
乍一看,这似乎很简单。可能是,但有几件事让我觉得我可能遗漏了一些东西。首先 the Java documentation for Character.isWhitespace 似乎排除了它。白色space允许和不允许的定义似乎非常明确('if and only if')并且第一行说not一个不间断的space.
我一直把普通的 'space' - 当你按下 space 条时得到的东西 - 视为 non-breaking space。
那么它在列表中的位置是什么?该列表在 this question 的最高评价答案中被认为是确定的 - 我只是读错了吗? 此外,this question 中最高答案的第一位评论者似乎有他的疑虑(在不同的上下文中)。然而,当我构造一段简单的代码来测试时,它表明正常的 space 是 whitespace 的一个实例,正如人们所期望的那样。
import static java.lang.Character.isWhitespace;
public class WhitespaceCheck {
public static void main(String[] args) {
Character test = ' ';
if (Character.isWhitespace(test)) {
System.out.println("Is whitespace!" );
} else {
System.out.println("Is not whitespace!" );
}
}
}
那么,我是不是看错了列表中的第一项,它是列表中的其他地方,还是列表本身就是错误的?
你错了; a non-breaking space 防止换行。它是一种特殊类型的 space 而不是允许换行的 "normal" 类型。如果 "normal" space 是 non-breaking space 那么当你到达屏幕边缘时,行永远不会换行,除非你每次都手动按下 return。
第一行说:
It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', '\u2007', '\u202F')
可在此处找到 SPACE_SEPARATOR 涵盖的 unicode whitespace 列表:
https://en.wikipedia.org/wiki/Whitespace_character
SPACE_SEPARATOR 的文档说它指的是一类 Unicode 字符,而不是特定字符。标题的'normal'space(通常是由space栏产生的)属于此类。