String相关:
1:
String是字符串类型可以定义字符串变量指向字符串对象
String是不可变字符串的原因:String变量每次的修改其实都是产生并指向新的字符串对象,原来的字符串对象都是没有改变的
2:
字符串对象的特点:
双引号的字符串对象,在字符串常量池中存储同一个;
通过new构造器创建的字符串对象,在堆内存中分开存储
3:String创建对象
public class sh{
public static void main(String[]args){
//创建一个空白对象
String s1=new String();
System.out.println(s1);//空白
//创建字符对象
String s2=new String("阿巴斯看");
System.out.println(s2);//阿巴斯看
//根据数组内容创建字符串对象
char[] s={'a','b','c'};
String s3=new String(s);
System.out.println(s3);//abc
//根据字节数组内容创建字符串对象
byte[] q={97,98,99,65,66,67};
String s4=new String(q);
System.out.println(s4);//abcABC
}
}
通过new构造器每new一个就会产生一个新对象
char[] chs={'a','b','c'};
String s3=new String(chs);
String s5=new String("abcd");//创建了两个对象“abcd”放在字符串常量池中new出来的abcd放在堆内存中
String s6=new String("abcd");
System.out.println(s5==s6);//false
4:String提供equals,equalsIgnoreCase
import java.util.Scanner;
public class sh{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
String name="sahqx";
String sw=sc.next();
if(name.equals(sw)) System.out.println(true);//用equals判断字符内容是否一致
else System.out.println(false);
if(name.equalsIgnoreCase(sw)) System.out.println(true);
else System.out.println(false);//忽略大小比较字符串是否一致
}
}
String常用API:
public class sh{
public static void main(String[]args){
//1:获取字符串长度
String c="我的dd";
System.out.println(c.length());//4
//2:获取某个索引的位置
char s=c.charAt(1);
System.out.println(s);//的
//3:把字符串换成字符数组toCharArray
char[] d=c.toCharArray();
for (int i = 0; i < d.length; i++) {
char s1 = d[i];
System.out.println(s1);//我的dd
}
//4:截取内容(包前不包后)String substring
String name="widhdhd";
String r=name.substring(1,3);
System.out.println(r);//id
//5:从当前索引一直截取到末尾
String a=name.substring(1);
System.out.println(a);//idhdhd
//6:
String f=name.replace("wid","***");
System.out.println(f);//***hdhd
//7:contians,startsWith判断内容true false
//8:按照内容把字符串分割字符串数组返回
String qq="需要我得,biubiu";
String[] z=qq.split(",");
for (int i= 0; i < z.length ;i++) {
System.out.println("选择了" + z[i]);
}
}
}
集合:
集合类型可以不固定,大小可变;集合适用于数据个数不确定且要做增删元素的场景;
ArrayList集合
public ArrayList() 创建一个空的集合对象
import java.util.ArrayList; public class dw { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("java"); list.add("jsi"); list.add(12); list.add(22 + "jdkj"); System.out.println(list); } }
ArrayList<String>此集合只能操作字符串类型
ArrayList<integer>此集合只能操作整数类型
存储引用类型,不支持基本数据类型
集合常用方法
String e = list.get(3);
System.out.println(e);//h获取某个索引位置的元素值
System.out.println(list.size());//获取集合的大小(元素个数)
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));//集合的遍历
}
String s2=list.remove(2);//删除某个索引位置的元素值并返回被删除的元素值
System.out.println(s2);
System.out.println(list);
String s3=list.set(0:"jdd");
System.out.println(s3);//jsi
System.out.println(list);//修改某个索引位置处的元素值