Stringクラスの概要

1.はじめに

文字列クラス:文字列を表します

Stringクラスはfinalであり、不変の文字シーケンスを表します

文字列は定数であり、二重引用符で示されます。作成後に値を変更することはできません。

Stringオブジェクトの文字コンテンツは、文字配列に格納されます

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence

StringはSerializableインターフェースを実装します。これは、文字列がシリアライズ可能であることを意味します。

Comparableインターフェースを実装します。これは、サイズを比較できることを意味します

2.不変性

文字列に文字通り(新規とは異なる)値を割り当て、この時点での文字列値は文字列定数プールで宣言されます

同じ内容の文字列は文字列定数プールに保存されません

  • 文字列を再割り当てすると、メモリ領域の割り当てが再定義され、元の値は割り当てに使用されません。

  • 文字列を連結する場合、メモリ領域を再設計する必要があり、元の値を割り当てることができません

  • 置換を使用して文字を置換する場合、メモリ領域も再定式化する必要があり、元の値を割り当てることができません

3、文字列のインスタンス化

1.リテラルメソッド

String s = "abc";

2.コンストラクターを使用します

String s = new String("abc");

4、文字列変換

1.文字列とchar []間の変換

字符串 --> char[]   调用String的toCharArray方法
char[] --> 字符串   调用String的构造器
String s = "coasjc";
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
    
    
     System.out.println(chars[i]);
}
        
char[] c = new char[]{
    
    'a','c','d'};
String s1 = new String(c);
System.out.println(s1);

2.文字列とbyte []間の変換

String-> byte []はエンコーディングと呼ばれ、StringのgetByteメソッドを使用します

byte []-> Stringは、Stringコンストラクターを使用してデコードと呼ばれます

//使用默认字符集进行解码
String s = new String(bytes);
//使用指定字符集进行解码
String s1 = new String(gbks, "GBK");

要件:デコードされた文字セットは、エンコードに使用された文字セットと一致している必要があります。一致していないと、文字化けした文字が表示されます。

おすすめ

転載: blog.csdn.net/weixin_45321793/article/details/109725151