java API String相關

String是最基本的數據類型嗎?
基本數據類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。爲了提高效率節省空間,我們應該用StringBuffer類


string常量池:

對於重複出現的字符串直接量,jvm會首先在常量池中查找如果存在即返回該對象。

package string;

public class TestConstantPoll {
	public static void main(String[] args){
		String str1 = "hello";
		//不會創建新對象,而是使用常量池中已有的
    	String str2 = "hello";
    	System.out.println(str1 == str2);
    	//使用new關鍵字會創建新的對象
    	String str3 = new String("hello");
    	System.out.println(str1 == str3);
	}
}


String在內存中採用Unicode編碼,每個字符佔用兩個字節;任何一個字符(無論中文還是英文)都算1個字符長度,佔用兩個字節。

package string;

public class TestLength {
	public static void main(String[] args){
		String str1 = "hello";
		System.out.println(str1.length());
		String str2 = "你好,String";
		System.out.println(str2.length());
	}
}



charAt:

package string;

public class TestCharAt {
	public static void main(String[] args){
		String name = "whatisjava";
		for(int i = 0; i < name.length(); i++){
			System.out.print(name.charAt(i) + " ");//w h a t i s j a v a
		}
	}
}

indexOf:

package string;

public class TestIndexOf {
	public static void main(String[] args){
		String str = "i can because i think i can";
		int index = str.indexOf("can");
		System.out.println(index);                 //2
		index = str.lastIndexOf("can");
		System.out.println(index);                 //24
		index = str.indexOf("can",6);
		System.out.println(index);                 //24
		index = str.indexOf("Can");
		System.out.println(index);                 //-1
	}
}

startWith  endWith

public class TestStartWithEndWith {
	public static void main(String[] args) {
		String str = "thinking in java";
		System.out.println(str.startsWith("java"));   //false
		System.out.println(str.startsWith("t"));        //true
		System.out.println(str.startsWith("think"));     //true
		System.out.println(str.startsWith("Think"));   //false
	}
}

subString

package string;

public class TestSubString {
	public static void main(String[] args){
		String str = "http://www.oracle.com";
		String subStr = str.substring(11,17);
		System.out.println(subStr);                //oracle
		
		subStr = str.substring(7);                   
		System.out.println(subStr);                //www.oracle.com
	}
}

toUpperCase   toLowerCase

package string;

public class TestToUpperCaseToLowerCase {
	public static void main(String[] args){
		String str = "我喜歡java";
		str = str.toUpperCase();
		System.out.println(str);        // 我喜歡JAVA
		str = str.toLowerCase();
		System.out.println(str);        //我喜歡java
	}
}


Trim:

package string;

public class TestTrim {
	public static void main(String[] args){
		String str = "   good time    ";
		str = str.trim();
		System.out.println(str);          //good time
	}
}

valueOf:

package string;

public class TestValueOf {
	public static void main(String[] args){
		double pi = 3.1415;
		String str = String.valueOf(pi);
		System.out.println(str);
	}
}

StringBuilder封裝可變字符串。
stringbuilder是可變字符串。字符串的內容計算,建議採用StringBuilder實現。



StringBuffer和StringBuilder:
StringBuffer是線程安全的,同步處理的,性能稍慢。
StringBuilder是非線程安全的,併發處理的,性能稍快。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章