public class TestString {
public static void main(String[] args) {
//字元串常量會被放入常量池中
String string="abc";
String string2=new String("def");
String string3="abd"+"dedsd";
String string4="18"+19; //不是加法 是字元串連接配接符
System.out.println(string4);
System.out.println("##################");
//10 和 11是同一對象 在常量池中取得是同一個 12建立了對象
String str10="gaoqi";
String str11="gaoqi";
String str12=new String("gaoqi");
System.out.println(str10==str11);//ture
System.out.println(str12==str11);//false
System.out.println("$$$$$$$$$$$$$");
//通常比較字元串時,使用equals 比較字元(不比較字元的時候,equals仍然比較的是位址)
// ==比較的是位址是否一樣,
System.out.println(str12.equals(str11));
}
public class TestString2 {
public static void main(String[] args) {
String s1="core java";
String s2="Core java";
System.out.println(s1.length());//提取字元串的長度
System.out.println(s1.charAt(3));//提取下标為3的字元
System.out.println(s2.length());//字元串的長度 空格也算一個長度
System.out.println(s1.equals(s2));//比較兩個字元串是否相等
System.out.println(s1.equalsIgnoreCase(s2));//比較兩個字元串,忽略大小寫
System.out.println(s1.indexOf("java"));//字元串s1中是否包含java,傳回第一次出現的位置,沒有則傳回-1
System.out.println(s1.indexOf("apple"));//字元串s1中是否包含apple
String s=s1.replace(' ','&');//将s1中的空格替換成&
System.out.println("result is:"+s);
String s3="";
String s4="How are you?";
System.out.println(s1.startsWith("How"));//是否以How開頭
System.out.println(s1.endsWith("you"));//是否以you結尾
s3=s4.substring(4);//提取子字元串,從下表為4的開始到字元串結尾為止
System.out.println(s3);
s3=s1.substring(4,7);//提取子字元串,下标[ 4,7) 不包括7
System.out.println(s3);
s3=s1.toLowerCase();//轉小寫
System.out.println(s3);
s3=s1.toUpperCase();//轉大寫
System.out.println(s3);
s2=" How old are you? ";
s=s2.trim();//去除字元串首尾的空格,注意:中間的空格不能去除
System.out.println(s);
System.out.println(s2);//string是不可變字元串,s2不變
//将字元串轉化為字元串數組(字元串的切割,涉及到了正規表達式)
s1="張三,李四,王五";
String[] arr=s1.split(",");
for (int i=0;i<arr.length;i++) {System.out.println(arr[i]);}
//将字元串轉化為字元數組
char[] arr2=s1.toCharArray();
for (int i=0;i<arr.length;i++) {System.out.println(arr2[i]);}
//将字元串轉化為位元組數組
s1="ab你";
byte[] bytes=s1.getBytes();
for (int i = 0; i < bytes.length; i++) {System.out.println(bytes[i]);}
}
}
String string="aaaabbbb"; //本質上是一個char value[]-字元數組。有final修飾,隻能指派一次,故不可變
String string2=string.substring(2,5);
System.out.println(string);
System.out.println(string2);
//編譯器做了優化,直接在編譯的時候将字元串進行拼接
String str1="hello"+"java"; //相當于str1="hello java";
String str2="hello java";
System.out.println(str1==str2); //true
String string3="hello";
String string4="java";
//編譯的時候不知道變量中存儲的是什麼,是以沒法在編譯時優化
String str5=string3+string4;
System.out.println(str2==str5);//false
System.out.println(str2.equals(str5));//字元串比較時,用equals不用==