String类及其构造器和常用方法
String類時lang包的內置類,使用時不需要引用。
一、構造器
String():通過new方法創建字符串
String(byte[] byte):把字節數字轉換為字符串
異同比較:
String str="abc";
String str1=new String("abc");
str 與str1有什么異同。
首先,str==str1,是否成立。不成立。
其次,str.equals(str1),是否成立。成立。
為什么?
因為String類的equals()方法比較的是值是否相等,很明顯,str與str1的值相等。
為什么str==str1不成立呢。因為String str="abc" 與?String str1=new String("abc")兩種創建String類對象的底層方法是不同的。先說String str="abc" 這種創建String類對象的方法。此種方法創建對象,首先在常量池中搜索是否有“abc”字符串,如果有,則把該字符串的地址返回給棧。如果沒有則創建一個"abc"字符串,然后把地址返回給棧引用。
而new String()方法,首先在堆中創建一個對象,然后再去搜索常量池中是否有“abc”字符串,如果有,則把該字符串的地址返回給堆中的對象。如果沒有則創建一個"abc"字符串,然后把地址返回給堆中的對象。此時棧保存的堆中對象的地址。
很明顯,new String()方法創建的對象地址是堆中的地址,而另一種方法對象的地址是常量池中地址。很明顯,兩個地址是不同的。
另外,String str="abc"創建一個對象,而String str1=new String("abc")有可能創建了兩個對象(在堆中創建了一個對象,如果常量池中沒有“abc”字符串,還需要在常量池中創建一個對象)。
二、常用方法
int length():活動字符串的長度,注意與獲得數組長度的區別,獲得數組長度不需要括號
char charAt(int index):獲得指定索引的字符
int codePointAt(int index):獲得指定索引的字符的ASCII碼
int compareTo(String anotherstring):與另外一個字符串比較,如果<0,說明在被比較字符串之前;=0,則相等;>0,說明在被比較字符串之后。
int compareToIgnoreCase(String anotherstring):比較時不區分大小寫
boolean startsWith():是否以某個子字符串開始
boolean endtsWith():是否以某個子字符串介紹
s.trim():去掉s字符串前后的空格,并返回一個新字符串
boolean s.equals():比較兩個字符串的值是否相等;
int indexOf(int ch):返回指定字符的第一個索引。需要注意的是,可以用字符,也可以同字符的ASCII碼
eg.
String str="hello world";
int int1=str.indexOf("h");
//int int2=str.indexOf(0);這兩種寫法是等價的
int indexOf(int ch,int fromindex):從某個索引開始檢索,然后返回指定字符的索引。注意包含fromindex索引。
?int indexOf(String str):返回指定子字符串的第一個索引。
?int indexOf(String str,int fromindex):從某個索引開始檢索,然后返回指定子字符串的索引。
String substring(int beginindex,int endindex):返回從beginindex(含)到endindex(不含)的子字符串。
String replace(char oldchar ,char newchar):把字符串中的所有oldchar換成newchar并返回一個新字符串
String replace(charsequnce target,charsequence replacement):將字符串中的所有target換成replacement并返回一個新字符串
static String ?valueOf(boolean a):將一個布爾值轉化為字符串形式,靜態方法。由于是靜態方法,使用該方法是需要類調用。如:String .valueOf(b)
static String valueOf(char a):返回字符a的字符串形式
?
轉載于:https://www.cnblogs.com/hitnmg/p/9233025.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的String类及其构造器和常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web前端零基础入门学习!前端真不难!
- 下一篇: 添加事件的兼容性写法