Java Character类
Java在 java.lang包中 提供了一个封装类 Character 。一个Character类型的对象包含一个字段,其类型为char。Character类提供了许多有用的类(即静态)方法来操作字符。你可以用Character构造函数创建一个Character对象。
创建一个 Character对象。
Character ch = new Character('a');
上述语句创建了一个Character对象,其中包含char类型的’a’。在Character类中只有一个构造函数,它期望一个char数据类型的参数。
如果我们将一个原始的char传入一个期望有对象的方法中,编译器会自动将char转换为Character类对象。这个特性被称为自动装箱和拆箱。
注意: 字符类和字符串类一样是不可改变的,即一旦它的对象被创建,它就 不能 被改变。
字符类的方法
字符类的方法有以下几种。
1. boolean isLetter(char ch): 这个方法用来确定指定的char值(ch)是否是一个字母。如果是字母([A-Z], [a-z]),该方法将返回true,否则返回false。我们也可以将ASCII值作为参数传递,因为在java中,char到int是隐含的类型转换。
语法
boolean isLetter(char ch)
参数
- ch – 一个原始的字符
返回: 如果ch是一个字母,则返回true,否则,返回false。
例子
// Java program to demonstrate isLetter() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.isLetter('A'));
System.out.println(Character.isLetter('0'));
}
}
输出
true
false
2. boolean isDigit(char ch) : 这个方法用来确定指定的char值(ch)是否是数字。在这里,我们也可以将ASCII值作为一个参数。
语法
boolean isDigit(char ch)
参数
- ch – 一个原始的字符
返回: 如果ch是一个数字,则返回true,否则,返回false。
例子
// Java program to demonstrate isDigit() method
public class Test {
public static void main(String[] args)
{
// print false as A is character
System.out.println(Character.isDigit('A'));
System.out.println(Character.isDigit('0'));
}
}
输出
false
true
3. boolean isWhitespace(char ch ) : 它确定指定的char值(ch)是否为空白。白色空间包括空格、制表符或换行。
语法
boolean isWhitespace(char ch)
参数
- ch – 一个原始的字符
返回: 如果ch是空格,则返回true,否则,返回false。
例子
// Java program to demonstrate isWhitespace() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.isWhitespace('A'));
System.out.println(Character.isWhitespace(' '));
System.out.println(Character.isWhitespace('\n'));
System.out.println(Character.isWhitespace('\t'));
// ASCII value of tab
System.out.println(Character.isWhitespace(9));
System.out.println(Character.isWhitespace('9'));
}
}
输出
false
true
true
true
true
false
4. boolean isUpperCase(char ch): 它确定指定的char值(ch)是否为大写字母。
语法
boolean isUpperCase(char ch)
参数
- ch – 一个原始的字符
返回: 如果ch是大写字母,则返回true,否则,返回false。
例子
// Java program to demonstrate isUpperCase() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.isUpperCase('A'));
System.out.println(Character.isUpperCase('a'));
System.out.println(Character.isUpperCase(65));
}
}
输出
true
false
true
boolean isLowerCase(char ch): 它决定了指定的char值(ch)是否是小写字母。
语法
boolean isLowerCase(char ch)
参数
- ch – 一个原始的字符
返回: 如果ch是小写字母,则返回true,否则,返回false。
例子
// Java program to demonstrate isLowerCase() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.isLowerCase('A'));
System.out.println(Character.isLowerCase('a'));
System.out.println(Character.isLowerCase(97));
}
}
输出
false
true
true
char toUpperCase(char ch): 它返回指定char值(ch)的大写字母。如果传递的是一个ASCII值,那么将返回其大写字母的ASCII值。
语法
char toUpperCase(char ch)
参数
- ch – 一个原始字符
返回: 它返回指定char值的大写形式。
例子
// Java program to demonstrate toUpperCase() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.toUpperCase('a'));
System.out.println(Character.toUpperCase(97));
System.out.println(Character.toUpperCase(48));
}
}
输出
A
65
48
char toLowerCase(char ch): 它返回指定的char值(ch)的小写字母。
语法
char toLowerCase(char ch)
参数
- ch – 一个原始字符
返回: 它返回指定char值的小写形式。
例子
// Java program to demonstrate toLowerCase() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.toLowerCase('A'));
System.out.println(Character.toLowerCase(65));
System.out.println(Character.toLowerCase(48));
}
}
输出
a
97
48
toString(char ch): 它返回一个代表指定字符值(ch)的String类对象,即一个字符的字符串。这里我们 不能 传递ASCII值。
语法
String toString(char ch)
参数
- ch – 一个原始字符
返回: 它返回一个字符串对象。
例子
// Java program to demonstrate toString() method
public class Test {
public static void main(String[] args)
{
System.out.println(Character.toString('x'));
System.out.println(Character.toString('Y'));
}
}
输出
x
Y
Java中字符类的方法
S. No. | 方法 | 描述 |
---|---|---|
1. | static int charCount(int codePoint) | 此方法确定代表指定字符(Unicode码位)所需的char值的数量。 |
2. | charcharValue() | 该方法返回该字符对象的值。 |
3. | static int codePointAt(char[] a, int index) | 此方法返回char数组中给定索引处的码位。 |
4. | static int codePointAt(char[] a, int index, int limit) | 此方法返回char数组中给定索引的代码点,其中只有索引小于限制的数组元素可以被使用。 |
5. | static int codePointAt(CharSequence seq, int index) | 此方法返回CharSequence中给定索引的代码点。 |
6. | static int codePointBefore(char[] a, int index) | 该方法返回char数组中给定索引前的代码点。 |
7. | static int codePointBefore(char[] a, int index, int start) | 该方法返回char数组中给定索引前的代码点,其中只有索引大于或等于start的数组元素可以使用。 |
8. | static int codePointBefore(CharSequence seq, int index) | 此方法返回CharSequence中给定索引前面的代码点。 |
9. | static int codePointCount(char[] a, int offset, int count) | 该方法返回char数组参数的子数组中的Unicode码点数量。 |
10. | static int codePointCount(CharSequence seq, int beginIndex, int endIndex) | 此方法返回指定char序列文本范围内的Unicode码点数量。 |
11. | static int codePointOf(String name) | 该方法返回由给定的Unicode字符名称指定的Unicode字符的码位值。 |
12. | static int compare(char x, char y) | 此方法对两个char值进行数字比较。 |
13. | int compareTo(Character anotherCharacter) | 此方法对两个字符对象进行数字比较。 |
14. | static int digit(char ch, int radix) | 此方法返回字符ch在指定radix中的数字值。 |
15. | static int digit(int codePoint, int radix) | 此方法返回指定的字符(Unicode码位)在指定弧度下的数值。 |
16. | boolean equals(Object obj) | 此方法将此对象与指定对象进行比较。 |
17. | static char forDigit(int digit, int radix) | 此方法确定指定小数点中特定数字的字符表示。 |
18. | static byte getDirectionality(char ch) | 该方法返回指定字符的Unicode方向性属性。 |
19. | static byte getDirectionality(int codePoint) | 此方法返回给定字符(Unicode码位)的Unicode方向性属性。 |
20. | static String getName(int codePoint) | 该方法返回指定字符codePoint的Unicode名称,如果该码位未被指定,则返回空。 |
21. | static int getNumericValue(char ch) | 该方法返回指定Unicode字符所代表的int值。 |
22. | static int getNumericValue(int codePoint) | 此方法返回指定字符(Unicode码位)所代表的int值。 |
23. | static int getType(char ch) | 此方法返回一个表示字符的一般类别的值。 |
24. | static int getType(int codePoint) | 此方法返回表示一个字符的一般类别的值。 |
25. | int hashCode() | 该方法返回该字符的哈希代码;等于调用charValue()的结果。 |
26. | static int hashCode(char value) | 此方法返回一个字符值的散列代码;与Character.hashCode()兼容。 |
27. | static char highSurrogate(int codePoint) | 该方法返回代表UTF-16编码中指定补充字符(Unicode码位)的代理对的前导代理(高代理码单位)。 |
28. | static boolean isAlphabetic(int codePoint) | 此方法确定指定的字符(Unicode码位)是否是字母。 |
29. | static boolean isBmpCodePoint(int codePoint) | 该方法确定指定的字符(Unicode码位)是否在基本多语言平面(BMP)中。 |
30. | static boolean isDefined(char ch) | 本方法确定一个字符是否在Unicode中定义。 |
31. | static boolean isDefined(int codePoint) | 该方法确定一个字符(Unicode码位)是否在Unicode中定义。 |
32. | static boolean isHighSurrogate(char ch) | 此方法确定给定的字符值是否是Unicode高代用码单位(也称为领先代用码单位)。 |
33. | static boolean isIdentifierIgnorable(char ch) | 此方法确定指定的字符是否应被视为Java标识符或Unicode标识符中的可忽略的字符。 |
34. | static boolean isIdentifierIgnorable(int codePoint) | 本方法确定指定的字符(Unicode码位)是否应被视为Java标识符或Unicode标识符中可忽略的字符。 |
35. | static boolean isIdeographic(int codePoint) | 此方法确定指定的字符(Unicode码位)是否为Unicode标准定义的CJKV(中、日、韩、越)表意文字。 |
36. | static boolean isISOControl(char ch) | 此方法确定指定的字符是否为ISO控制字符。 |
37. | static boolean isISOControl(int codePoint) | 本方法确定引用的字符(Unicode码位)是否是ISO控制字符。 |
38. | static boolean isJavaIdentifierPart(char ch) | 此方法确定指定的字符是否可能是Java标识符的一部分,而不是第一个字符。 |
39. | static boolean isJavaIdentifierPart(int codePoint) | 此方法确定该字符(Unicode码点)是否可以作为第一个字符以外的Java标识符的一部分。 |
40. | static boolean isJavaIdentifierStart(char ch) | 此方法确定指定的字符是否允许作为Java标识符的第一个字符。 |
41. | 静态布尔isJavaIdentifierStart(int codePoint) | 该方法确定字符(Unicode码位)是否允许作为Java标识符的第一个字符。 |
42. | static boolean isLowSurrogate(char ch) | 此方法确定给定的字符值是否是Unicode低代用代码单位(也称为尾部代用代码单位)。 |
43. | static boolean isLetterOrDigit(char ch) | 此方法确定指定的字符是字母还是数字。 |
44. | static boolean isLetterOrDigit(int codePoint) | 该方法确定指定的字符(Unicode码位)是字母还是数字。 |
45. | static boolean isMirrored(char ch) | 此方法确定该字符是否符合Unicode规范的镜像。 |
46. | static boolean isMirrored(int codePoint) | 本方法根据Unicode规范确定指定的字符(Unicode码位)是否是镜像的。 |
47. | static boolean isSpaceChar(char ch) | 此方法确定指定的字符是否为Unicode空间字符。 |
48. | static boolean isSpaceChar(int codePoint) | 此方法确定指定的字符(Unicode码位)是否是Unicode空间字符。 |
49. | static boolean isSupplementaryCodePoint(int codePoint) | 此方法确定指定的字符(Unicode码位)是否在补充字符范围内。 |
50. | static boolean isSurrogate(char ch) | 此方法确定给定的char值是否为Unicode代用代码单位。 |
51. | static boolean isSurrogatePair(char high, char low) | 此方法确定指定的一对char值是否是有效的Unicode代用码对。 |
52. | static boolean isTitleCase(char ch) | 此方法确定指定的字符是否是标题大写的字符。 |
53. | static boolean isTitleCase(int codePoint) | 此方法确定指定的字符(Unicode码位)是否为大写字符。 |
54. | static boolean isUnicodeIdentifierPart(char ch) | 此方法确定指定的字符是否可能是Unicode标识符的一部分,而不是第一个字符。 |
55. | static boolean isUnicodeIdentifierPart(int codePoint) | 此方法确定指定的字符(Unicode码位)是否可以作为第一个字符以外的Unicode标识符的一部分。 |
56. | static boolean isUnicodeIdentifierStart(char ch) | 此方法确定指定的字符是否可以作为Unicode标识符中的第一个字符。 |
57. | static boolean isUnicodeIdentifierStart(int codePoint) | 此方法确定是否允许指定的字符(Unicode码位)作为Unicode标识符中的第一个字符。 |
58. | static boolean isValidCodePoint(int codePoint) | 此方法确定指定的代码点是否是有效的Unicode代码点值。 |
59. | static char lowSurrogate(int codePoint) | 该方法返回UTF-16编码中代表指定补充字符(Unicode码位)的代理对的尾部代理(低代理代码单元)。 |
60. | static int offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) | 该方法返回给定的char子阵列中的索引,该索引与给定的索引之间有codePointOffset码点的偏移。 |
61. | static int offsetByCodePoints(CharSequence seq, int index, int codePointOffset) | 此方法返回给定的char序列中的索引,该索引与给定的索引之间通过codePointOffset码点进行偏移。 |
62. | static char reverseBytes(char ch) | 此方法返回通过颠倒指定的char值中的字节顺序得到的值。 |
63. | static char[] toChars(int codePoint) | 此方法将指定的字符(Unicode代码点)转换为UTF-16表示,存储在一个char数组中。 |
64. | static int toChars(int codePoint, char[] dst, int dstIndex) | 此方法将指定的字符(Unicode码位)转换为UTF-16表示。 |
65. | static int toCodePoint(char high, char low) | 此方法将指定的代理对转换为其补充码位值。 |
66. | static char toTitleCase(char ch) | 该方法使用UnicodeData文件中的大小写映射信息将字符参数转换为标题大小写。 |
67. | static int toTitleCase(int codePoint) | 此方法使用UnicodeData文件中的大小写映射信息将字符(Unicode码位)参数转换为标题大写。 |
68. | static Character valueOf(char c) | 本方法返回一个代表指定字符值的字符实例。 |
转义序列。
以反斜杠(\)为首的字符是转义序列,对编译器有特殊意义。下表显示了Java的转义序列。
转义序列 | 说明 |
---|---|
\t | 在这一点上在文本中插入一个制表符。 |
\b | 在这一点上插入退格符。 |
\n | 在这一点上插入换行。 |
\r | 在这一点上插入一个回车键。 |
\f | 在这一点上,在文本中插入一个formfeed。 |
\’ | 在此插入一个单引号字符。 |
\” | 在此插入一个双引号字符。 |
\\\ |
在这一点上,在文本中插入一个反斜杠字符。 |
当在打印语句中遇到转义序列时,编译器会对其进行相应的解释。例如,如果你想在引号内加上引号,你必须在内部引号上使用转义序列\”。要打印这个句子
She said "Hello!" to me.
你会写
System.out.println("She said \"Hello!\" to me.");