JAVA基础-String及其包装类

更新时间:2020-07-07 10:32:07 点击次数:947次
String:
是JAVA中的引用类型,开发中经常经常要用的~String字符串一旦被赋值,就是不可改变的。每次被重新赋值时,都是在内存地址中创建了新的对象,指向了新的地址。

String a = new String("Jason");
String b = "Jason";
System.out.println(a == b); //false
System.out.println(a.equals(b));  //true

上述的这个例子,说明的问题:当我们用“==”进行比较的时候,其实他比较是两个字符串的内存地址值,但是!new出来的对象,他存在我们的堆内存中。意思就是“a”他存在我们的堆内存,而“b”存在字符串池中,两个地址不一致,所以就会为false,然后equals比较的是内容是否相同。自然为true;

字符串常用的一些API(不用特别记,用着用着就熟悉了):

判断方法:
boolean equals(String s);
boolean isEmpty();//这里不能用于判断String为null的情况,会报空指针,仅相当于判断长度是否为0
boolean equalsIgnoreCase(String s);//字符串是否相等忽略大小写
boolean sartsWith(String s);//是否以s开头
boolean endsWith(String s);//是否以s结尾
boolean contains(String s);//是否包含s


获取方法:
int length();//获取长度
int indexOf(String s);//返回s在字符串中第一次出现的索引
int indexOf(String s,int fromIndex);//返回s在字符串中从指定位置起第一次出现的索引
char charA(int index);//返回字符串中指定位置的字符
String substring(int index);//从指定位置开始截取字符串,默认到结尾
String substring(int fromIndex,int endIndex);//截取指定位置区间的字符串,包左不包右

转换方法:
byte[] getBytes();//转成字节数组
char[] toCharArray();//转成字符数组
String toLowerCase();//转换成小写
Sting toUpperCase();//转换成大写
static String valueOf(char[] c);//把字符数组转换成字符串
static String valueOf(int i);//int型转String
String concat(String s);//把s拼接入字符串末尾

其它方法:
String replace(char o,char n);//替换字符
String replace(String old,String new);//替换指定字符串
String trim();//去除字符串头尾空格

转换方法:
转成int:Integer.parseInt("111");
转成string:String.valueOf("100");

StringBuffer和StringBuilder:
再来讲讲这两个,因为我们的String字符串是不可变的,但是我们在开发的时候如果频繁的要进行字符串的拼接,那么用String就会很浪费资源,不停地创建新的对象,所以就有了StringBuffer和StringBuilder,这两者都是可以对字符串进行拼接。

他们两者得区别是:StringBuffer是线程安全的,保证数据同步,但是相对效率就比较低,StringBuilder就不是线程安全的。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!