如果它是空的char / white空格,则返回true,否则返回false。我的问题是为什么java有两种方法,因为它们做同样的事情
答案 0 :(得分:7)
方法isSpaceChar(char)
仅用于检查unicode空格字符(SPACE_SEPARATOR,LINE_SEPARATOR,PARAGRAPH_SEPARATOR),而方法isWhiteSpace(char)
用于空格以及其他空格字符,如制表符,回车等
char ch='\t';
System.out.println(Character.isWhitespace(ch));
System.out.println( Character.isSpaceChar(ch));
输出
true
false
答案 1 :(得分:2)
isSpaceChar
将检查char是否是unicode空格char,而isWhitespace
检查是否有任何空格char。当且仅当它满足以下条件之一时,字符才是Java空白字符:
It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', '\u2007', '\u202F').
It is '\t', U+0009 HORIZONTAL TABULATION.
It is '\n', U+000A LINE FEED.
It is '\u000B', U+000B VERTICAL TABULATION.
It is '\f', U+000C FORM FEED.
It is '\r', U+000D CARRIAGE RETURN.
It is '\u001C', U+001C FILE SEPARATOR.
It is '\u001D', U+001D GROUP SEPARATOR.
It is '\u001E', U+001E RECORD SEPARATOR.
It is '\u001F', U+001F UNIT SEPARATOR.
所以存在重叠,因为isWhitespace将为Unicode空间字符返回true,而且整个负载也会更多。
请参阅: https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isWhitespace(char)
答案 2 :(得分:1)
差异在specification:
中详细说明
isWhiteSpace
:根据Java确定指定的字符是否为空格。当且仅当它满足以下条件之一时,字符才是Java空白字符:[...]
isSpaceChar
:确定指定的字符是否为Unicode空格字符。当且仅当Unicode标准将字符指定为空格字符时,才将字符视为空格字符。
这两个定义是不同的,根据用例,您需要一个或另一个。对于简单的需求,您可能不关心差异,但显然它就在那里。