String类:
一、存放位置:
字符串对象创建好后不能修改
String是引用数据类型,但是这里作为方法参数传递的时候,效果跟基本数据类型是一样的。也就是说在堆中创建出来的字符串”monkey”是不能被改变的,如果要修改,系统会在堆中重新开辟内存空间将”good”放入,然后将change方法中的s重新引用这个新的内存地址上的”good”。
第一个存在常量池里,第二个存在堆内存里
String s3=new String ("monkey") 先在堆内存存,再在常量池存【因为有双引号】
实际开发不用New 用下方方法
创建了3个对象
二、字符串比较:
字符串的比较:
==指地址相等
equals指内容相等
三、String方法:
char charAt(int index);获取index位置的字符
boolean contains(CharSequence s);判断字符串中是否包含某个字符串
boolean endsWith(String endStr);判断是否是以某个字符串结尾
boolean equalsIgnoreCase(String anotherString);忽略大小写比较两个字符串是否相等
byte[] getBytes();转换成byte数组
int indexOf(String str);取得指定字符在字符串的位置
int indexOf(String str, int fromIndex);从指定的下标开始取得指定字符在字符串的位置
int lastIndexOf(String str);从后面开始取得指定字符在字符串最后出现的的位置
int length();获取字符串的长度
String replaceAll(String s1,String s2);替换字符串中的内容
String[] split(String s);根据指定的表达式拆分字符串
boolean startsWith(String s);判断是否是以某个字符串开始
String substring(int begin);根据传入的索引位置截子串
String substring(int beginIndex, int endIndex);根据传入的起始和结束位置截子串
char[] toCharArray();将字符串转换为char数组
void toUpperCase();转换为大写
void toLowerCase();转换为小写
String trim();去除首尾空格
String valueOf(Object obj);将其他类型转换为字符串类型
四、StringBuffer和StringBuilder:字符串缓冲区
当频繁使用字符串拼接时,用StringBuffer,需要new
StringBuffer sb1=new StringBuffer(30)
StringBuffer进行字符串拼接 使用append
插入字符串用insert(index,“”)
删除指定位置用delete(index1,index2)