目录
1. String字符串
String s = "abcdefg";
String s1 = new String("abcdefg");
String s2 = new String("abcdefg");
String是一个类,s叫做String类的对象
s1是通过new创建出来的String类的对象,创建对象是要调用构造器的
s指向的"abcdefg"和s1指向的"abcdefg"不在同一区域内
System.out.println(s==s1); //输出false
System.out.println(s1==s2); //输出false
双等号比较的是虚地址
虚地址:对象在内存中的存储位置
1.1 总结
等号赋值,无论怎么比较都是true
new赋值,用双等号比较,都是false
1.2 equals方法
- 需要传参,传String类型的参数
- 返回值是boolean类型
- 访问权限public
作用:比较两个字符串的值
String s1 = "a";
String s2 = "a";
System.out.println(s3==s4); //输出false 比较的是内存地址
System.out.println(s3.equals(s4)); //输出true 比较的是值
1.3 length方法
- 不需要传参
- 有返回值,整型int
- 访问权限public
作用:获取字符串长度
String s1 = "abcdefg";
System.out.println(s1.length()); //输出7
int[] arr = new int[10];
System.out.println(arr.length); //输出10
字符串获取长度的方法和数组获取长度的方法有什么区别?
1、数组的length是属性,字符串的length()是方法
1.4 charAt方法
作用:取出指定下标位置的字符
String s = "abcdefg";
System.out.println(s.charAt(0)); //输出a
1.5 indexOf方法和lastIndexOf方法
indexOf方法作用:判断指定字符是否存在,存在时返回从左往右遇见的第一个匹配的字符串的下标,不存在时返回-1;
lastIndexOf方法作用:判断指定字符是否存在,存在时返回从右往左遇见的第一个匹配的字符串的下标,不存在时返回-1;
String s1 = "abcdefga";
//indexOf(String,int) 代表从int位置开始查找,包括当前位置
System.out.println(s1.indexOf("a",0));//输出0
//从后往前找
System.out.println(s1.lastIndexOf("a",7)); //输出7
1.6 substring方法
作用:从指定位置开始截取,截取后包括起始位置的字符;生成一个新的字符串,不会改变原有数据
String str = "abcdefghijklmn";
String str1 = str.substring(1);
System.out.println(str1); //输出bcdefghijklmn
1.7 replace方法
作用:替换字符
String str = "hello";
System.out.println(str.replace('e','c'))//输出hcllo
System.out.println(str.replaceAll("l","i"));//输出hciio
1.8 其他方法
//下面所有方法都是返回一个新的字符串
String s = "abcdefg";
//转大写
System.out.println(s.toUpperCase()); //输出ABCDEFG
String s1 = "ABCDEFG";
//转小写
System.out.println(s1.toLowerCase());//输出abcdefg
//判断是否以xxxx开头 toffset偏移量
System.out.println(s.startsWith("a",2)); //输出false
//判断是否xxxx结尾
System.out.println(s.endsWith("F")); //输出false
//忽略大小写进行比较内容
System.out.println(s.equalsIgnoreCase(s=s1));//输出true
//去掉字符串前后的空格
System.out.println(s.trim());//输出abcdefg
//根据指定的字符进行分割
String str2 = "a,b,c,d,e,f,g";
String[] Strings = str2.split(",");
System.out.println(Arrays.toString(Strings));
//输出[a, b, c, d, e, f, g]
2. 字符串和数组的转换
1.数组转字符串
int[] arr = new int[]{1,2,3,4,5};
System.out.println(Arrays.toString(arr));//输出[1, 2, 3, 4, 5]
2.字符串转成字符型的数组
String str = "abcdefg";
char[] array = str.toCharArray();
for (char c: array) {
System.out.print(c); //输出abcdefg
}
3.字符串转成字节型数组
//一般情况下,字节型数组在操作文件的时候常用 IO流
byte[] bytes = str.getBytes();
for (byte b:bytes) {
System.out.println(b);
}
4.把int类型转换成字符串
int i = 10;
String s = String.valueOf(i);
3. 包装器
1.包装器类型(包装类、封装类)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
2.可以使用的场景:
- 员工管理系统
- 员工:年龄、薪水
- 计算总工资、平均年龄
自动装箱:把int类型包装成了包装器Integer类型
基本数据类型转换成对应的包装器类型
自动拆箱:把Integer类型转换成int类型
包装器类型转换成对应的基本数据类型