1.String类
- String字符串不可变,内部存放的是指向字符常量池的字符串的引用,并不存放字符串本身。
-
创建字符串:
-
判断是否相等:str1.equals(String);
-
裁切字符串:str1.substring(begin, end);
-
获取字符:str1.charAt(0index);
-
格式化字符串:
-
查找字串:str1.indexOf("dfe");
找到返回第一次出现的下标,没找到返回-1。
-
分割字符串:
String se=sc.nextLine(); //获取一行 String []s=se.split("\\s+"); //忽略空格分隔字符串,返回一个string数组
2.StringBuilder类
-
Java的字符串是不可修改的,遇到字符串的拼接会生成大量对象,防止生产无用对象,使用StringBuider类。
-
创建对象:StringBuilder str =new StringBuilder(10);//指定初始容量10.
-
添加元素:str.append(E);
-
删除元素:str.delete(begin,end);
-
插入元素:str.insert(index,E);
-
例:
import java.util.Scanner; public class Main{ public static void main(String []args){ Scanner sc=new Scanner(System.in); while(sc.hasNextInt()){ int n=sc.nextInt(); StringBuilder str =new StringBuilder(10); for(int i=0;i<n;i++){ str.append(i); } int begin=sc.nextInt(); int end=sc.nextInt(); System.out.println(str.substring(begin, end)); } } }
3.length()和length的区别
-
length是字符串数组求元素个数的值。
-
length()是字符串求长度所用的方法。
-
例:
4.动态字符串数组
-
创建数组:ArrayList<String> s=new ArrayList<>();
-
判断是否包含字符串:s.contains(E);
-
例:
5.字符串常量池
字符串常量池是堆中的一块存储区域,用于存放字符串的内容本身。当创建String对象=“x"时,会检查字符串常量池中是否有该常量对象"x",有则返回一个引用存放在String内,没有则在字符串常量池中创建一个“x”常量对象,再返回一个引用存放在String内。
没有初始化的String和String数组并没有创建实例对象,内部为NULL。