Java 简明教程
Java - Character Class
通常,当我们处理字符时,我们使用原始数据类型char。
Example
char ch = 'a';
// Unicode for uppercase Greek omega character
char uniChar = '\u039A';
// an array of chars
char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };
Use of Character Class in Java
然而在开发中,我们会遇到需要使用对象来代替原始数据类型的情况。为了实现这一点,Java为原始数据类型char提供了包装类`@ {s0}`。
Java Character Class
`Character`类提供了一些有用的类(即静态)方法来操作字符。你可以使用`Character`构造函数创建一个`Character`对象 -
Character ch = new Character('a');
在某些情况下,Java编译器还会为你创建一个`Character`对象。例如,如果你将一个原始char传递给一个期望对象的函数,编译器会自动为你将char转换成一个`Character`。此功能称为自动装箱或拆箱,如果转换相反。
Example of Java Character Class
// Here following primitive char 'a'
// is boxed into the Character object ch
Character ch = 'a';
// Here primitive 'x' is boxed for method test,
// return is unboxed to char 'c'
char c = test('x');
Escape Sequences
一个带有反斜杠(\)的前缀字符是一个转义序列,并且对编译器有特殊的含义。
换行符(\n)在本教程中经常在`System.out.println()`语句中使用,以便在字符串打印后换到下一行。
下表显示了Java转义序列 -
Escape Sequence |
Description |
\t |
在此处在文本中插入制表符。 |
\b |
在此处在文本中插入退格符。 |
\n |
在此处在文本中插入换行符。 |
\r |
在此处在文本中插入回车符。 |
\f |
在此处在文本中插入换页符。 |
\' |
在此处在文本中插入一个单引号字符。 |
\" |
在此处在文本中插入一个双引号字符。 |
当在打印语句中遇到转义序列时,编译器会相应地对其进行解释。
Character Class
Declaration
以下是对`@ {s1}`类的声明 -
public final class Character
extends Object
implements Serializable, Comparable<Character>
Field
以下是`@ {s2}`类的字段 -
-
static byte COMBINING_SPACING_MARK − 这是 Unicode 规范中的常规类别“Mc”。
-
static byte CONNECTOR_PUNCTUATION − 这是 Unicode 规范中的常规类别“Pc”。
-
static byte CONTROL − 这是 Unicode 规范中的常规类别“Cc”。
-
static byte CURRENCY_SYMBOL − 这是 Unicode 规范中的常规类别“Sc”。
-
static byte DASH_PUNCTUATION − 这是 Unicode 规范中的常规类别“Pd”。
-
static byte DECIMAL_DIGIT_NUMBER − 这是 Unicode 规范中的常规类别“Nd”。
-
static byte DIRECTIONALITY_ARABIC_NUMBER − 这是 Unicode 规范中的弱双向字符类型“AN”。
-
static byte DIRECTIONALITY_BOUNDARY_NEUTRAL − 这是 Unicode 规范中的弱双向字符类型“BN”。
-
static byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR − 这是 Unicode 规范中的弱双向字符类型“CS”。
-
static byte DIRECTIONALITY_EUROPEAN_NUMBER − 这是 Unicode 规范中的弱双向字符类型“EN”。
-
static byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR − 这是 Unicode 规范中的弱双向字符类型“ES”。
-
static byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR − 这是 Unicode 规范中的弱双向字符类型“ET”。
-
static byte DIRECTIONALITY_LEFT_TO_RIGHT − 这是 Unicode 规范中的强双向字符类型“L”。
-
static byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING − 这是 Unicode 规范中的强双向字符类型“LRE”。
-
static byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE − 这是 Unicode 规范中的强双向字符类型“LRO”。
-
static byte DIRECTIONALITY_NONSPACING_MARK − 这是 Unicode 规范中的弱双向字符类型“NSM”。
-
static byte DIRECTIONALITY_OTHER_NEUTRALS − 这是 Unicode 规范中的中立双向字符类型“ON”。
-
static byte DIRECTIONALITY_PARAGRAPH_SEPARATOR − 这是 Unicode 规范中的中立双向字符类型“B”。
-
static byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT − 这是 Unicode 规范中的弱双向字符类型“PDF”。
-
static byte DIRECTIONALITY_RIGHT_TO_LEFT − 这是 Unicode 规范中的强双向字符类型“R”。
-
static byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC − 这是 Unicode 规范中的强双向字符类型“AL”。
-
static byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING − 这是 Unicode 规范中的强双向字符类型“RLE”。
-
static byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE − 这是 Unicode 规范中的强双向字符类型“RLO”。
-
static byte DIRECTIONALITY_SEGMENT_SEPARATOR − 这是 Unicode 规范中的中性双向字符类型“S”。
-
static byte DIRECTIONALITY_UNDEFINED − 这是未定义的双向字符类型。
-
static byte DIRECTIONALITY_WHITESPACE − 这是 Unicode 规范中的中性双向字符类型“WS”。
-
static byte ENCLOSING_MARK − 这是 Unicode 规范中的通用类别“Me”。
-
static byte END_PUNCTUATION − 这是 Unicode 规范中的通用类别“Pe”。
-
static byte FINAL_QUOTE_PUNCTUATION − 这是 Unicode 规范中的通用类别“Pf”。
-
static byte FORMAT − 这是 Unicode 规范中的通用类别“Cf”。
-
static byte INITIAL_QUOTE_PUNCTUATION − 这是 Unicode 规范中的通用类别“Pi”。
-
static byte LETTER_NUMBER − 这是 Unicode 规范中的通用类别“Nl”。
-
static byte LINE_SEPARATOR − 这是 Unicode 规范中的通用类别“Zl”。
-
static byte LOWERCASE_LETTER − 这是 Unicode 规范中的通用类别“Ll”。
-
static byte MATH_SYMBOL − 这是 Unicode 规范中的通用类别“Sm”。
-
static int MAX_CODE_POINT − 这是 Unicode 码点的最大值。
-
static char MAX_HIGH_SURROGATE − 这是 UTF-16 编码中 Unicode 高代理代码单元的最大值。
-
static char MAX_LOW_SURROGATE − 这是 UTF-16 编码中 Unicode 低代理代码单元的最大值。
-
static int MAX_RADIX − 这是可用于字符串转换的最大基数。
-
static char MAX_SURROGATE − 这是 UTF-16 编码中的 Unicode 代理代码单元的最大值。
-
static char MAX_VALUE − 此字段的常量值是 char 类型的最大值“\uFFFF”。
-
static int MIN_CODE_POINT − 这是 Unicode 代码点最小值。
-
static char MIN_HIGH_SURROGATE − 这是 UTF-16 编码中 Unicode 高代理代码单元的最小值。
-
static char MIN_LOW_SURROGATE − 这是 UTF-16 编码中 Unicode 低代理代码单元的最小值。
-
static int MIN_RADIX − 这是可用于字符串转换的最小基数。
-
static int MIN_SUPPLEMENTARY_CODE_POINT − 这是补充字符的最小值。
-
static char MIN_SURROGATE − 这是 UTF-16 编码中 Unicode 代理代码单元的最小值。
-
static char MIN_VALUE − 此字段的常量值是 char 类型的最小值“\u0000”。
-
static byte MODIFIER_LETTER − 这是 Unicode 规范中的通用类别“Lm”。
-
static byte MODIFIER_SYMBOL − 这是 Unicode 规范中的通用类别“Sk”。
-
static byte NON_SPACING_MARK − 这是 Unicode 规范中的通用类别“Mn”。
-
static byte OTHER_LETTER − 这是 Unicode 规范中的通用类别“Lo”。
-
static byte OTHER_NUMBER − 这是 Unicode 规范中的通用类别“No”。
-
static byte OTHER_PUNCTUATION − 这是 Unicode 规范中的通用类别“Po”。
-
static byte OTHER_SYMBOL − 这是 Unicode 规范中的通用类别“So”。
-
static byte PARAGRAPH_SEPARATOR − 这是 Unicode 规范中的通用类别“Zp”。
-
static byte PRIVATE_USE − 这是 Unicode 规范中的通用类别“Co”。
-
static int SIZE − 这是用于以无符号二进制形式表示 char 值的位数。
-
static byte SPACE_SEPARATOR − 这是 Unicode 规范中的通用类别“Zs”。
-
static byte START_PUNCTUATION − 这是 Unicode 规范中的通用类别“Ps”。
-
static byte SURROGATE − 这是 Unicode 规范中的通用类别“Cs”。
-
static byte TITLECASE_LETTER − 这是 Unicode 规范中的通用类别“Lt”。
-
static Class<Character> TYPE − 这是表示基元类型 char 的类实例。
-
static byte UNASSIGNED − 这是 Unicode 规范中的通用类别“Cn”。
-
static byte UPPERCASE_LETTER − 这是 Unicode 规范中的通用类别“Lu”。
Class constructors
Sr.No. |
Constructor & Description |
1 |
Character(char value) 这将构造一个新分配的 Character 对象来表示指定的 char 值。 |
Class methods
Example
以下示例展示了 Java Character charCount() 方法的用法。在此程序中,我们创建了一个 int 变量并为其分配等效于一个 char 值的十六进制值。然后,使用 charCount() 方法,我们检查它是否是有效的附加字符。然后打印结果。
package com.tutorialspoint;
public class CharacterDemo {
public static void main(String[] args) {
// create and assign values to int codepoint cp
int cp = 0x12345;
// create an int res
int res;
// assign the result of charCount on cp to res
res = Character.charCount(cp);
String str1 = "It is not a valid supplementary character";
String str2 = "It is a valid supplementary character";
// print res value
if ( res == 1 ) {
System.out.println( str1 );
} else if ( res == 2 ) {
System.out.println( str2 );
}
}
}