如果字符为空或者是空格,两种方法都会返回true,否则返回false。我的问题是,为什么Java有这两种方法,因为它们所做的事情是相同的。
如果字符为空或者是空格,两种方法都会返回true,否则返回false。我的问题是,为什么Java有这两种方法,因为它们所做的事情是相同的。
方法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
isSpaceChar
函数检查字符是否为Unicode空格字符,而isWhitespace
函数检查任何空白字符。在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)