== 的作用
基礎數據類型:比較基礎數據類型的值是否相等
引用數據類型:比較引用數據類型的地址是否相等
字符串的存儲位置
通過構造方法創建字符串對象是在堆內存;
通過直接賦值創建的字符串對象是在方法區的常量池;
字符串內容是存儲在方法區的常量池裏面,這麼做是爲了方便字符串的重複使用。
public class StringDemo2 {
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = "hello";
//System.out.println("s1"+s1);
//System.out.println("s2"+s2);
System.out.println("s1==s2:"+(s1==s2));
String s3 = "hello";
System.out.println("s1==s3:"+(s1==s3));
System.out.println("s2==s3:"+(s2==s3));
}
}
//輸出結果
s1==s2:false
s1==s3:false
s2==s3:true
圖解類的存儲結構
字符串轉成字符數組
toCharArray
public char[] toCharArray()將此字符串轉換爲一個新的字符數組。
返回:
一個新分配的字符數組,它的長度是此字符串的長度,它的內容被初始化爲包含此字符串表示的字符序列。
用途:字符串的遍歷
public class StringDemo {
public static void main(String[] args) {
String s = "abcde";
char[] chs = s.toCharArray();
for(int i =0;i<s.length();i++){
System.out.println(chs[i]);
}
}
}
字符串的兩種遍歷方法
1:把字符串轉成字符數組,然後遍歷數組(代碼如上)
2:String 類的length方法加上charAt
字符串的兩種反轉方法
1.把字符串倒着遍歷,得到一個字符拼湊成的字符串;
2.把字符串轉換成字符數組,對字符數組進行反轉,把字符串數組轉換成字符串(字符串的構造方法)。
3.String–>StringBuilder–>使用reverse方法–>String
//方法一
public static String stringReverse1(String s){
String sr= "";
for(int i=s.length()-1;i>=0;i--){
sr += s.substring(i,i+1);
//sr += s.charAt(i);
}
return sr;
}
//方法二
public static String stringReverse2(String s){
String sr = "";
char[] chs = s.toCharArray();
for(int start=0,end = chs.length-1;start<=end;start++,end--){
char temp=chs[start];
chs[start]= chs[end];
chs[end] = temp;
}
//sr = chs.toString();
sr = new String(chs);
return sr;
}
//代碼3
public class StringBuilder2 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("請輸入字符串");
String ss = sc.nextLine();
String sr = stringReverse(ss);
System.out.println(sr);
}
public static String stringReverse(String ss){
String sr="";
StringBuilder sb = new StringBuilder(ss);
sb.reverse();
sr = sb.toString();
return sr;
}
}