一、基础概念
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'}