String
String name = "xxx" // 通过双引号字符串的方式创建字符串对象
String name1 = new String() // 可以接收字符串、字节数组、字符数组
name.length() // 获取字符串的长度
name.charAt(int index) // 获取字符串特定索引处的字符
char[] s = name.toCharArray() // 将字符串变更为字符数组
name.equals(name1) // 判断两个字符串内容是否相同
name.substring(0, 10) // 截取字符串中的某段内容
name.substring(2) // 只给起始索引,会自动截取到末尾
name.replace() // 替换字符串的某些内容
name.contains() // 判断字符串是否以某些内容开头
name.split() // 将字符串从每段内容进行分割,分割结果为字符串数组
创建字符串对象
package demo0313;
public class demo1 {
public static void main(String[] args) {
String name = "小白";
System.out.println("直接用双引号创建字符串对象:" + name);
String name1 = new String();
System.out.println("通过无参数构造器创建字符串对象:" + name1);
String name2 = new String("小黑");
System.out.println("通过有参构造器创建字符串对象:" + name2);
char[] chars = {'a', '小', '红'};
String name3 = new String(chars);
System.out.println("通过字符数组创建字符串对象:" + name3);
byte[] bytes = {97, 98, 99};
String name4 = new String(bytes);
System.out.println("通过字节数组创建字符串对象:" + name4);
}
}
字符串的常用方法
package demo0313;
public class demo2 {
public static void main(String[] args) {
String s = "小红的脸蛋好黑啊,该去美白了";
System.out.println(s.length()); // 获取字符串长度
char c = s.charAt(1); // 获取字符串整数索引处的字符
System.out.println("获取字符串索引1处的字符:" + c);
char[] chars = s.toCharArray(); // 将字符串转为字符数数组
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
String s1 = "小红的脸蛋好黑啊,该去美白了";
System.out.println("用=号判断字符串是否相等:" + (s1 == s));
String s2 = new String("小红的脸蛋好黑啊,该去美白了");
String s3 = new String("小红的脸蛋好黑啊,该去美白了");
System.out.println("用=号判断字符串对象是否相等:" + (s2 == s3));
System.out.println(s2.equals(s3)); // 判断两个字符串对象内容是否相等
System.out.println(s3.substring(0, 10)); // 截取字符串的某段内容
System.out.println(s3.substring(7)); // 只给起始索引,自动截取到末尾
String info = "真你妈的傻逼,操你妈";
String s4 = info.replace("傻逼", "**"); // 替换字符串中的某些内容
System.out.println("替换傻逼后的字符串:" + s4);
s4 = s4.replace("你妈", "**");
System.out.println("再次替换你妈后的字符串:" + s4);
s4 = s4.replace('操', '*');
System.out.println("替换操后的字符串:" + s4);
System.out.println(info.contains("傻逼")); // 判断字符串是否包含某些内容
System.out.println(info.startsWith("操")); // 判断字符串是否以某些内容开头
System.out.println(info.split("操")); // 以某个内容分割字符串
String[] info1 = info.split("操");
for (int i = 0; i < info1.length; i++) {
System.out.println(info1[i]);
}
}
}
字符串的注意事项
- 字符串是不可变的,每次改变字符串变量时,都会产生一个新的对象,也就是新的地址给该变量
- 只要是以"…"方式写出的字符串对象,会存储到字符串常量池中,且相同内容只会存储一份
- 通过new方式创建的字符串对象,每new一次,都会产生一个新的字符串对象
ArrayList
1.和数组的区别: 是可变长的数组,数组定义完成后,长度就固定了,而集合是自动可变长的
ArrayList list = new ArrayList() // 创建一个集合容器
ArrayList<String> list1 = new ArrayList<>(); // 创建一个集合容器,且只能存储String类型的数据
list.add() // 在集合末尾处追加元素
list.add(int index , xxx) // 在集合特定位置插入元素
list.get(int index) // 获取集合某个位置处的元素
list.size() // 获取集合的大小
list.remove(int index) // 删除集合某个索引处的元素值
list.remove(xxx) // 删除集合中的某个元素,多个相同元素值,只会删除第一个
list.set(int index , xxx) // 修改集合某个位置的元素
集合的使用
package demo0313;
import java.util.ArrayList;
public class demo4 {
public static void main(String[] args) {
ArrayList list = new ArrayList(); // 创建一个集合容器
list.add("小红");
list.add(85.2);
list.add('a');
System.out.println(list); // 会直接打印出集合中的内容,而不是地址
ArrayList<String> list1 = new ArrayList<>(); // 约定集合中只能存储String类型的数据,其他类型的数据不允许
list1.add("小宝");
// list1.add(98); // 此处会报错
list.add(1, 35); // 在集合指定位置插入元素
System.out.println(list);
System.out.println(list.get(2)); // 获取集合中某个位置的元素的值
System.out.println(list.size()); // 获取集合的大小
list.remove(1); // 删除集合中的某个元素
System.out.println(list);
list.add("小红");
System.out.println(list);
System.out.println(list.remove("小红")); // 删除集合中的某个元素,并返回true或者false,如果集合中有多个元素的话,只会删除第一个
System.out.println(list);
list.set(1, "小宝"); // 修改某个索引处的值
System.out.println(list);
}
}