初级:
小知识:
== 比较的是地址值是否先等(用于基本数据类型)
equals 比较的是对象是否相等(用于引用数据类型)
String s3 = "123";//默认为 String s = new String("123");
String的对象会在常量池也有
String str= "abc";//创建字符串的方式 String st1 = new String("abc");//指定封装的字符串 String st2 = new String(new char[]{'a','b','c'});//封装一个字符串 byte[] b= {97,98,99}; String st3 = new String(b);//封装一个byte数组 String st4 = new String(b,0,2);//封装byte数组中的指定元素 从下标0开始长度为2 System.out.println(str);//——abc System.out.println(st1);//——abc System.out.println(st2);//——abc System.out.println(st3);//——abc System.out.println(st4);//——ab System.out.println(str==st1); String s = new String("123"); System.out.println(s); String s2 = new String("123"); System.out.println(s2); System.out.println(s==s2); System.out.println(s.equals(s2));
进阶:
String str = new String();//无参构造 - 空字符串
System.out.println(str);// 输出就是空字符串
str = "123abc12323";
System.out.println(str);
System.out.println(str.length());//输出字符串的长度 —— 11
System.out.println(str.charAt(3));//从下标0开始 找到下标为3的字符 ——a
System.out.println(str.indexOf("23"));//查看是否有指定字符串 有则返回最先发现的字符下标 否则返回-1;——1(下标)
System.out.println(str.lastIndexOf('2'));//指定char字符最后的下标——9
System.out.println(str.indexOf("123"));//从指定下标 开始检查 第一次出现的 字符串的下标位置 —— 0(下标)
System.out.println( "测试"+str.indexOf("2",8 ));//从给指定的fromIndex位置开始查找给定的字符串 返回下表——9System.out.println(str.contains("ab"));//查看是否包含当前 字符串,包含返回true,否则返回false——true
System.out.println(str.isEmpty());//查看是否为空 如果为空返回true 否则返回false——false
System.out.println(str.startsWith("123"));//查看是否为指定字符串开头 ——true
System.out.println(str.endsWith("123"));//查看是否为指定字符串结尾 ——false
//操作
str = "123abc12323"
str= str.replace('2', '4');//将当前字符串中的指定字符 替换新的字符转 返回替换后的字符串
System.out.println("替换后"+str);// 替换后143abc14343//str= str.substring(3);//从指定的下标开始截至 返回截至后的字符串
str = str.substring(3, 8);//从指定下边截取 截至到指定下标结束 含头不含尾(不包括下标8)—— 143abc14343
str = str.toLowerCase(Locale.ROOT);//将字符串中的所有字符变成小写
System.out.println("编程小写的"+str);
str = str.toUpperCase(Locale.ROOT);//将字符串中的所有字符变成大写
System.out.println("变成大写的"+str);
str = " aren ae 123 ";
System.out.println(str=str.trim());//去掉字符串中的头和尾的空格 —— aren ae 123
//改变形态的
str = " aren ae 123 ";
char[] c = str.toCharArray(); //把字符串变成Char的数组
System.out.println(Arrays.toString(c));//——[a, r, e, n, , , a, e, , , 1, 2, 3]
byte[] b = str.getBytes(StandardCharsets.UTF_8);//将字符串按照编码格式解析成byte数组,返回byte数组
System.out.println(Arrays.toString(b));//——[97, 114, 101, 110, 32, 32, 97, 101, 32, 32, 49, 50, 51]
str= "12321211321";
String[] s = str.split("2");//将当前字符串,按照指定字符串切割,返回切割狗的字符串数组
System.out.println(Arrays.toString(s));//——[1, 3, 1, 113, 1]
String[] s1 = str.split("2",1);//指定切割字符串,切割次数小于指定此数
System.out.println(Arrays.toString(s1));//——[12321211321]String[] s2 = str.split("2",3);//指定切割字符串,切割次数小于指定此数
System.out.println(Arrays.toString(s2));//——[1, 3, 1211321]