一、字符串
1.构造字符串
- 使用直接赋值获取一个字符串对象
String s1 = "abc";
- 使用new的方法获取一个字符串对象
//空参构造:获取空白的字符串对象 String s2 = new String(); //带参数的构造 String s3 = new String("abc");
- 传递一个字符数组,根据数组内容再创建一个字符串对象
char [] ch = {'a','b','c'}; String s4 = new String(ch);
- 传递一个字节数组,根据数组内容再创建一个字符串对象
byte[] bytes = {97,98,99}; String s5 = new String(byte); //"abc"
注:当使用双引号赋值时 ,系统会检查该字符串在串池中是否存在;存在:复用;不存在:创建新的
2.字符串比较
public class StringDemo1 {
public static void main(String[] args) {
//创建两个字符串对象
String s1 = new String("abc");
String s2 = "Abc";
// ==号比较
//基本数据类型:比较数值
//引用数据类型:比较地址
//比较字符串对象中的内容是否相等(不忽略大小写)
boolean result1 = s1.equals(s2); //flase
//比较字符串对象中的内容是否相等(忽略大小写)
boolean result2 = s1.equals(s2); //true
}
}
3.字符串的截取及替换
4.StringBuilder
可以看成一个容器,创建之后里面的内容是可变的
-
作用:提高字符串的操作效率
-
StringBuilder构造方法
-
StringBuilder常用方法
public class StringDemo1 {
public static void main(String[] args) {
//创建对象
StringBuilder sb = new StringBuilder("abc");
//添加元素
sb.append(1);
sb.append(2.3);
sb.append(true);
//sb.append(1).append(2.3).append(true); //链式,实现结果和上述相同
//反转
sb.reverse();
//获取长度
int len = sb.length();
//将StringBuilder变回字符串
String str = sb.toString();
}
}
5.StringJoiner
-
概述:和StringBuilder一样可看做一个容器,创建后的内容可变
-
作用:提高字符串的操作效率 ,且编码更简洁(由于在JDK8出现,使用人较少)
-
StringJoiner 的构造方法
-
StringJoiner 的成员方法
public class StringDemo1 {
public static void main(String[] args) {
//创建对象
StringJoiner sj = new StringJoiner(",","[","]");
//添加元素
sj.add("aa").add("bb").add("cc");
int len = sj.length(); //15
System.out.println(sj); //[aa,bb,cc]
String str = sj.toString(); //[aa,bb,cc]
}
}
字符串原理
二、集合的基本使用
1.集合和数组的对比
-
长度:数组长度固定,集合长度可变
-
储存类型:数组可存基本数据类型和引用数据类型;集合可存引用数据类型,存基本数据类型必须是包装类
2.ArrayList
-
ArrayList成员方法
public class StringDemo1 {
public static void main(String[] args) {
//创建集合
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("aa");
list.add("bb");
list.add("cc");
System.out.println(list); //[aa,bb,cc]
//删除元素
/*boolean result1 = list.remove("aa");
System.out.println(result1); //true
System.out.println(list); //[bb,cc]*/
/*boolean result2 = list.remove("dd");
System.out.println(result2); //集合中没有"dd",输出flase
String str = list.remove(0); //传入索引,返回删除的对应该索引的元素"aa"
System.out.println(str);*/
//修改元素
String result = list.set(1,"ddd");
System.out.println(list); //[aa, ddd, cc]
System.out.println(result); //bb
//获取元素
String str = list.get(0);
System.out.println(str); //aa
}
}