Java Character详解

发布时间:2023-05-21

一、基础概念

Java中的字符是基本数据类型之一,表示一个Unicode字符。 Java中的char类型占用2个字节,范围为0到65535,对应的是UTF-16字符编码。 Java中使用单引号来表示一个字符,例如:'A','1'。

二、字符转化

将字符转化为对应的整数值

char ch = 'A';
int value = (int)ch; // value的值为65

将字符转化为对应的字符串

char ch = 'A';
String str = String.valueOf(ch); // str的值为"A"

将一串字符转化为字符数组

String str = "Hello";
char[] arr = str.toCharArray(); // arr的值为{'H', 'e', 'l', 'l', 'o'}

三、字符比较

在Java中,可以使用以下几种方式比较两个字符的大小关系: 1、使用char类型自带的比较运算符

char ch1 = 'A';
char ch2 = 'B';
boolean result = (ch1 < ch2); // result的值为true,因为'A'的Unicode值小于'B'

2、使用ASCII码进行比较

char ch1 = 'A';
char ch2 = 'B';
boolean result = ((int)ch1 < (int)ch2); // result的值为true,因为65比66小

3、使用Character.compare()方法进行比较

char ch1 = 'A';
char ch2 = 'B';
int result = Character.compare(ch1, ch2); // result的值为-1,因为'A'小于'B'

四、字符大小写转换

将字符转换为大写字符

char ch = 'a';
char upperCase = Character.toUpperCase(ch); // upperCase的值为'A'

将字符转换为小写字符

char ch = 'A';
char lowerCase = Character.toLowerCase(ch); // lowerCase的值为'a'

五、字符类型判断

判断字符是否为数字字符

char ch = '7';
boolean isDigit = Character.isDigit(ch); // isDigit的值为true

判断字符是否为字母字符

char ch = 'A';
boolean isLetter = Character.isLetter(ch); // isLetter的值为true

判断字符是否为大写字母

char ch = 'A';
boolean isUpperCase = Character.isUpperCase(ch); // isUpperCase的值为true

判断字符是否为小写字母

char ch = 'a';
boolean isLowerCase = Character.isLowerCase(ch); // isLowerCase的值为true

六、字符编码转换

将字符转化为UTF-8编码字节数组

char ch = '中';
byte[] bytes = String.valueOf(ch).getBytes("UTF-8");

将UTF-8编码字节数组转换为字符

byte[] bytes = new byte[]{(byte)0xe4, (byte)0xb8, (byte)0xad};
String str = new String(bytes, "UTF-8");
char ch = str.charAt(0); // ch的值为'中'

七、字符替换和删除

将字符串中指定字符替换为另一个字符

String str = "Hello World";
String newStr = str.replace('l', 'L'); // newStr的值为"HeLLo WorLd"

将字符串中指定子串替换为另一个子串

String str = "Hello World";
String newStr = str.replace("World", "Java"); // newStr的值为"Hello Java"

将字符串中的所有空格字符删除

String str = "This is a  test ";
String newStr = str.replaceAll("\\s", ""); // newStr的值为"Thisisatest"

八、字符拼接和转化

将字符数组拼接成字符串

char[] arr = {'H', 'e', 'l', 'l', 'o'};
String str = String.valueOf(arr);

将字符串拆分成字符数组

String str = "Hello";
char[] arr = str.toCharArray(); // arr的值为{'H', 'e', 'l', 'l', 'o'}

将十六进制字符串转换为字符数组

String hexStr = "48656C6C6F"; // Hello的十六进制形式
char[] arr = new char[hexStr.length() / 2];
for (int i = 0; i < arr.length; i++) {
    arr[i] = (char)Integer.parseInt(hexStr.substring(i*2, i*2+2), 16);
} // arr的值为{'H', 'e', 'l', 'l', 'o'}