天天看點

Java入門—字元串

String的常用方法

Java入門—字元串

image.png

以上是我們平時常用的方法,建議自己手動測試練習加以記憶,其他方法可以查閱文檔。

将字元串轉換為byte數組

示例代碼:

String name = "java 程式設計 基礎";
byte[] b = name.getBytes();
for(int e: b){
    System.out.print(e+" ");
}

輸出結果:
106 97 118 97 32 -25 -68 -106 -25 -88 -117 32 -27 -97 -70 -25 -95 -128
           

在utf-8編碼中,一個漢字是用三個位元組去表示,是以上邊輸出為三個連續負數。

Java入門—字元串

每個位元組為8位,最大值是不能超過127的,而漢字轉換為位元組後是超過127的,之後就會發生溢出,以負數的方式顯示。

将byte數組轉為字元串:

String e = new String(b);
System.out.println(e);
           

new String()方法可以傳入編碼方式,(gbk utf-8)

byte數組和字元串互轉時,編碼要相同。

==和equals方法的差別

String a = "allen";
String b = "allen";
String c = new String("allen");

System.out.println(a==b);
System.out.println(a==c);
System.out.println(a.equals(b));
System.out.println(a.equals(c));
           
  • 對于==, 如果作用于基本資料類型的變量,則直接比較其存儲的 “值”是否相等;

    如果作用于引用類型的變量,則比較的是所指向的對象的位址

  • 對于equals :注意:equals方法不能作用于基本資料類型的變量如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的位址;諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的對象的内容。
    Java入門—字元串
    來源于慕課網.png

字元串的不可變性

String對象被建立後,是不可變的。

所謂的修改是建立了新的對象。原變量指向了新的對象。

字元串處理類StringBuilder

差別:StringBuilder 是可變的。

當頻繁操作字元串時,建議使用 StringBuilder ,如果使用String,會産生很多中間變量,會在常量池産生很多廢棄的資料。

StringBuilder 和 StringBuffer

二者基本相似,StringBuffer是線程安全的(相對來說速度慢),StringBuilder非線程安全,但是性能高。

四種構造方法:

Java入門—字元串

如果文章對你有幫助記得點個贊~

關注作者後續更新不錯過~