java String常用方法梳理

 

 

常用方法如下:

1.獲取字符串長度:     
       

 strmsg.length();


2.字符串轉爲字節:
        

strmsg.getBytes();


3.截取字符串 從第幾位開始
     

   strmsg.substring(int beginIndex);


4.截取字符串 從第幾位開始到第幾位結束
        

strmsg.substring(int beginIndex,int endIndex);


5.比較兩個字符串是否相等,後者不區分大小寫
 

        strmsg.equals(anObject);
        strmsg.equalsIgnoreCase(anotherString);


6.替換字符串中的某個字符
        

strmsg.replace(oldChar, newChar);


7.去除收尾空格
      

  strmsg.trim();


8.獲取從第幾位到第幾位的字符數組
       

 strmsg.getChars(int srcBegin, int srcEnd, char dst[], int dstBegin);


9.將字符串轉爲字符數組
      

  strmsg.toCharArray();


10.比較兩個字符串大小,後者不區分大小寫
 

        strmsg.compareTo(String anotherString);
        strmsg.compareToIgnoreCase(String str);


11.字符串以suffix字符串開始,結束
 

        strmsg.startsWith(suffix);
        strmsg.endsWith(suffix);

測試代碼:

package demo;

public class StringUtils {
	public static void main(String[] args) {
		StringDemo();
	}
	public static void StringDemo() {
		String strmsg="are you ok!";
//		length()字符串長度
		System.out.println("字符串長度:"+strmsg.length());
//		charAt(2)截取一個字符
		System.out.println("字符:"+strmsg.charAt(2));
//		getchars()截取多個字符並由其他字符串接收
		char[] ss=new char[10];
		strmsg.getChars(0, 6, ss, 0);
		System.out.println("截取字符串到字符數組:"+new String(ss));
//		getBytes()將字符串變成一個byte數組
		System.out.println("byte數組"+new String(strmsg.getBytes()));
//		 toCharArray()將字符串變成一個字符數組
		char[] b=strmsg.toCharArray();
		System.out.println("字符數組:"+new String(b));
//		equals()和equalsIgnoreCase()比較兩個字符串是否相等,前者區分大小寫,後者不區分
		System.out.println("比較兩個字符串是否相等:"+strmsg.equals("are you ok!"));
		System.out.println("比較兩個字符串是否相等(不區分大小寫):"+strmsg.equalsIgnoreCase("are you OK!"));
//		startsWith()和endsWith()判斷字符串是不是以特定的字符開頭或結束
		System.out.println("判斷字符串以什麼開頭:"+strmsg.startsWith("are"));
		System.out.println("判斷字符串以什麼結束:"+strmsg.endsWith("ok"));
//		toUpperCase()和toLowerCase()將字符串轉換爲大寫或小寫
		System.out.println("字符串轉大寫:"+strmsg.toUpperCase());
		System.out.println("字符串轉小寫:"+"ARE YOU OK".toLowerCase());
//		concat() 連接兩個字符串
		System.out.println("連接字符串:"+strmsg.concat("AREYOUOK"));
		System.out.println("拼接字符串:"+"AREYOUOK".concat(strmsg));
//		trim()去掉起始和結束的空格
		System.out.println("去掉開始結束空格:"+strmsg.trim());
		System.out.println("去掉開始結束空格:"+"  ARE YOU OK  ".trim());
//		substring()截取字符串
		System.out.println("截取字符串結果:"+strmsg.substring(5));
		System.out.println("截取字符串結果:"+"AREYOUOK".substring(5 ,8));
//		indexOf()和lastIndexOf()前者是查找字符或字符串第一次出現的地方,後者是查找字符或字符串最後一次出現的地方
		System.out.println("查找第一次出現位置:"+strmsg.indexOf("are"));
		System.out.println("查找第一次出現位置:"+strmsg.indexOf("are11"));
		System.out.println("查找第一次出現位置:"+strmsg.lastIndexOf("k"));
//		compareTo()和compareToIgnoreCase()按字典順序比較兩個字符串的大小,前者區分大小寫,後者不區分
		System.out.println("aaaaa".compareTo("aaaaa"));
		System.out.println("aaaaa".compareTo("bbbbb"));
		System.out.println("aaaaa".compareToIgnoreCase("AAAAA"));
//		replace() 替換
		System.out.println("替換結果打印:"+strmsg.replace("o", "O"));
	}
}

測試輸出結果:

字符串長度:11
字符:e
截取字符串到字符數組:are yo
are you ok!
字符數組:are you ok!
比較兩個字符串是否相等:true
比較兩個字符串是否相等(不區分大小寫):true
判斷字符串以什麼開頭:true
判斷字符串以什麼結束:false
字符串轉大寫:ARE YOU OK!
字符串轉小寫:are you ok
連接字符串:are you ok!AREYOUOK
拼接字符串:AREYOUOKare you ok!
去掉開始結束空格:are you ok!
去掉開始結束空格:ARE YOU OK
截取字符串結果:ou ok!
截取字符串結果:UOK
查找第一次出現位置:0
查找第一次出現位置:-1
查找第一次出現位置:9
0
-1
0
替換結果打印:are yOu Ok!

總結:

equals的效率高些,compareTo其實就是按照編碼的數值求差值,根據差值進行比較,它能確定兩個String在字典順序上的前後性,當你只是想知道是否一致時,用equals也行,效果一樣。


另外,equals是Object的方法,要求涉及到比較操作的繼承類要自己重寫該方法,所以String重寫了equals,而compareTo爲String的方法。所以:
value1.compareTo(value2),當value1不爲String類型時,會報錯。
但是Object類 只有.equals(),沒compareTo
Object是根類,它有的方法,其他類都可以繼承,使用.所以.equals 基本隨時能用.


一、對於字符串變量來說,使用“==”和“equals()”方法比較字符串時,其比較方法不同。
 1、“==”比較兩個變量本身的值,即兩個對象在內存中的首地址。
(java中,對象的首地址是它在內存中存放的起始地址,它後面的地址是用來存放它所包含的各個屬性的地址,所以內存中會用多個內存塊來存放對象的各個參數,而通過這個首地址就可以找到該對象,進而可以找到該對象的各個屬性)
 2、“equals()”比較字符串中所包含的內容是否相同。

		String s1,s2,s3 = "abc", s4 ="abc" ;
        s1 = new String("abc");
        s2 = new String("abc");
        System.out.println("s1==s2:"+(s1==s2));
        System.out.println("s1==s3:"+(s1==s3));
        System.out.println("s1==s4:"+(s3==s4));
        System.out.println("s1.equals(s2):"+(s1.equals(s2)));
        System.out.println("s1.equals(s3):"+(s1.equals(s3)));
        System.out.println("s3.equals(s4):"+(s3.equals(s4)));
s1==s2:false
s1==s3:false
s1==s4:true
s1.equals(s2):true
s1.equals(s3):true
s3.equals(s4):true

開發中儘量用equals。
發佈了18 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章