字符类型
- 字符常量:单引号引起来的单个符号 char
- 计算机底层只能识别二进制的数据。如果表示了一些字符信息,会先将这个字符转换为 对应的十进制整数,再将十进制整数转换为二进制整数识别。
- 每一个字符对应的都有一个整数,这种对应关系,就在编码表中来存储。
- 转换关系:
字符信息------->整数信息 编码
整数信息------->字符信息 解码 - 每个国家都有自己的字符信息,所以也都有自己国家对应的编码表。
中国的编码表:GBK GBK编码表中不仅定义了ASCII编码表,还定义了一些中文字符 和整数的对应关系。 - 官方为了更好的统一各个国家的字符,所以就制定了一个统一的编码表:万国码表:UTF-8。
- 在GBK的编码表中,如果定义了一个英文字符,统一使用一个字节存储。
如果定义了一个中文字符,统一使用两个字节存储。 - 在UTF-8编码表中,如果定义了一个英文字符,统一使用一个字节存储。
如果定义了一个中文字符,统一使用三个字节存储。
字符串类型
-
符串:使用双引号引起来的0,1,多个符号。
-
字符串变量的类型:String
-
是一个引用数据类型
这里的0x0011就相当于地址,引用型数据通过地址来获取信息
-
总结:
基本数据类型的变量中,存储的是数据值本身
引用数据类型的变量中,存储的是数据所在位置的地址值 -
String类型的字符串,和其他数据类型可以进行 + + + 运算
+ + + 运算不是相加运算,而是拼接
class Demo01 {
public static void main(String[] args) {
//如果是两个字符串+,直接拼接
System.out.println("Hello" + "abc");
//如果一个是字符串,一个是其他数据类型
//会先将其他数据类型转换为字符串,再拼接
//"Hello" + 123 "Hello" + "123"
System.out.println("Hello" + 123);
System.out.println("Hello" + true);
//先整数相加再拼接
System.out.println(123 + 100 + "Hello");
//一直往后拼接
System.out.println("Hello" + 123 + 100);
}
}
String类型中常用的方法
项目 | Value |
---|---|
equals(参数) | 用来比较两个字符串是否相等,如果相等为真,不等为假 |
contains(参数) | 用来判断调用的字符串中是否包含了参数字符串 |
startsWith(参数) | 用来判断调用的字符串是否是以参数开头 |
endsWith(参数) | 用来判断调用的字符串是否是以参数结束 |
isEmpty() | 判断调用的字符串是不是一个空字符串 |
substring(int i) | 截取字符串,从i+1个字符开始往后截取,返回一个新的字符串 |
substring(int i,int j) | 截取字符串,从i+1开始截取,到j-1结束 |
toUpperCase() | 将字符串转为全部大写 |
toLowerCase() | 将字符串转为全小写 |
class Demo02 {
public static void main(String[] args) {
String str = "Hello";
//判断字符串是否相等
System.out.println(str.equals("hello"));
System.out.println(str.equals("Hello"));
//判断是否包含参数字符串
System.out.println(str.contains("H"));
System.out.println(str.contains("YES"));
//判断是否是以参数开头
System.out.println("张三".startsWith("张"));
System.out.println("张三".startsWith("李"));
//判断是否是以参数结尾
System.out.println("张三".endsWith("三"));
System.out.println("张三".endsWith("张三"));
//判断是否是一个空字符串
System.out.println("张三".isEmpty());
System.out.println(" ".isEmpty());
System.out.println("".isEmpty());
//null值不能调用该方法
//System.out.println(null.isEmpty());
//截取字符串
String str2 = "abcdefg";
String s1 = str2.substring(2);
System.out.println(s1);
String s2 = str2.substring(2,5);
System.out.println(s2);
String str3 = "ABCdEfG";
//将字符串转为全小写
System.out.println(str3.toLowerCase());
//将字符串转为全大写
System.out.println("abcdEFG".toUpperCase());
}
}