Javase | 文字列 string - 2

  • Java 文字列は Unicode 文字のシーケンスです。

    例えば:

    文字列「Java\u2122」は、5 つの Unicode 文字 J、a、v、a、および (商標) TM で構成されます。
    \u2122 は Unicode エスケープ シーケンスです。Unicode では、\u に続く 4 桁の 16 進数は Unicode 文字を表し、\u2122 は「™」(商標記号) を表します。

  • Java には組み込みの文字列型はありませんが、標準 Java クラス ライブラリで String と呼ばれる事前定義クラスが提供されています。二重引用符で囲まれたすべての文字列は String 型です。

    例えば:

    String s = ""; //空字符串
    String str ="HelloWorld";
    

部分文字列:

substring メソッドを使用して文字列から部分文字列を抽出します

  • String クラスの substring() メソッドは、より大きな文字列から部分文字列を抽出できます。

    例えば:

    String str ="HelloWorld";
    String s =str.substring(0);   //创建了一个由字符“HelloWorld”组成的字符串。
    //创建了一个由字符“Hello”组成的字符串。(第一个字符的索引为0)
    String s2 =str.substring(0,5);   
    
  • subsString() メソッドの利点: 部分文字列の長さを計算するのが簡単です。subsString(a,b) の長さは ba です。たとえば、部分文字列「hello」の長さは 5-0=5 です。

substring() メソッドの 2 つのオーバーロード形式

  • 拡張機能: substring() メソッドの 2 つのオーバーロード形式:
    • 1.substring(int beginIndex):
      指定されたインデックスから開始して、実行インデックスを含む後続のすべての文字をインターセプトし、新しい文字列を返します。
    • 2.substring(int beginIndex, int endIndex):
      指定された開始インデックス (beginIndex) から終了インデックス (endIndex) までの対応する文字 (終了インデックスを除く) をインターセプトし、新しい文字列を返します。

スプライシング:

+ 記号を使用して 2 つの文字列を連結 (接合) します。

  • Java 言語では、+ 記号を使用して 2 つの文字列を連結 (接合) できます。

    例えば:

    String example = "interesting";
    String example2 = "things";
    String Infomation = example+" "+example2;
    System.out.println(Infomation); //interesting things
    
  • 文字列と非文字列を連結すると、後者は自動的に文字列に変換されます。この機能は通常、出力ステートメントに表示されます。

    例えば:

    int age =20;
    String str="NL" + age;  //NL20
    

静的結合メソッドを使用して複数の文字列を保存および分離する

  • 複数の文字列を区切り文字で区切って結合する場合は、静的結合方法を使用できます。

    例えば:

    //用 / 将SMLXL分隔开
    String all = String.join("/","S","M","L","XL");
    System.out.println(all);  // S/M/L/XL
    

repeat メソッドを使用して文字列をコピー/リピートする

  • Java11では、文字列をコピー・繰り返すためのrepeat()メソッドが提供されています。

    例えば:

    String repeated = "Java".repeat(3); // "Java"
    System.out.println(repeated); // JavaJavaJava
    

不変の文字列:

文字列内の文字を変更する方法

  • String クラスには、文字列内の文字を変更するメソッドがありません。String str = "Hello"; str の内容を「Help!」に変更する場合、最後の 2 つの位置の文字を「p」と「!」に直接変更することはできません。この時点で、保持したい部分文字列を抽出し、それを置換する部分文字列と結合することができます。

    例えば:

    String str = "Hello";
    str = str.substring(0, 3)+"p!"; // “Help!”
    System.out.println(str); // Help!
    
  • Java 文字列内の 1 文字は変更できないため、Java は String クラス オブジェクトを immutable と呼びます。数字の 3 が常に数字の 3 であるのと同様に、文字列「Hello」には常に文字 H、e、l、l、o が含まれており、これらの値を変更することはできません。ただし、ある文字列が別の文字列を参照するようにすることはできます (例: String str = "Hello"; この時点では、str = "Help!" を直接指定できます。

文字列が等しいかどうかを確認します。

大文字と小文字を区別した文字列の等価性の検出

  • equals メソッドを使用すると、2 つの文字列が等しいかどうかを確認できます。2 つの文字列が等しい場合は true を返し、そうでない場合は false を返します。

  • 比較される 2 つのオブジェクトは、文字列変数または文字列リテラルです。

    例えば:

    String color = "red";
    color.equals(color);//true
    "Hello".equals(color);//false
    

大文字と小文字を区別しない文字列の等価性の検出

  • 大文字と小文字を区別せずに 2 つの文字列が同等かどうかをテストする場合は、equalsIgnoreCase メソッドを使用できます。

    例えば:

    "Hello".equalsIgnoreCase("hello");
    

2 つの文字列が等しいかどうかを判断するために == 演算子を使用しないでください。

  • 2 つの文字列が等しいかどうかを判断するために == 演算子を使用しないでください。この演算子は、2 つの文字列が同じ場所に格納されているかどうかのみを判断できます。もちろん、文字列が同じ場所に格納されている場合は、それらは等しい必要があります。

    ただし、同じ内容を持つ文字列の複数のコピーを異なる場所に配置することは完全に可能です。仮想マシンが常に同じ部分文字列を共有する場合は、== を使用して 2 つの文字列が等しいかどうかを確認できます。

空の文字列とヌル文字列 (null):

空の文字列

  • 空の文字列は長さ 0 の文字列です。次のコードを使用して、文字列が空の文字列かどうかを判断できます。

    if(str.length()==0){
           
            //长度为0,自然是空串
        //为空串
    }else{
           
           
        //不为空串
    }
                
    if(str.equals("")){
           
            //字符串等于空串自然也是: 空串  
         //为空串
    }else{
           
           
         //不为空串
    }
    
  • スペース文字の長さは 1 であり、空の文字列 (空の文字列) とは区別されます。

  • 空の文字列は、独自の文字列長 (0) と内容 (空) を持つ Java オブジェクトです。

Null串(ヌル)

  • 文字列変数には、null と呼ばれる特別な値を格納することもできます。これは、現在その変数に関連付けられたオブジェクトが存在しないことを意味します。

  • 文字列が空かどうかを確認します。

    If(str = null){
           
           
        //为空串
    }else{
           
           
        //不为空串
    }
    
  • 文字列が null でも空でもないことを確認します。

    //首先要检查str不为null,如果在一个null值上调用方法,会报错
    If(str!=null&&str.length()!=0){
           
            
      //该字符串不为null也不为空串
    }
    

Stringクラスでよく使われるメソッド(String API)

Java の String クラスには 50 を超えるメソッドが含まれています。よく使用される String クラスのメソッドをいくつか示します。

  • char charAt(int インデックス)

    指定された位置にあるコードユニットを返します。

  • int codePointAt (int dex)

    指定された位置から始まるコードポイントを返します。

  • int offsetByCodePoints (int startIndex,int cpCount)

    startIndex コード ポイントとその後の cpCount コード ポイントから始まるコード ポイント インデックスを返します。

  • int CompareTo (その他の文字列)

    辞書順では、文字列が他の文字列より前にある場合は負の数が返され、文字列が他の文字列より後である場合は正の数が返され、2 つの文字列が等しい場合は 0 が返されます。

  • IntStream codePoints()

この文字列のコード ポイントをストリームとして返します。toArray を呼び出して配列に入れます。

  • new String(int [] codePoints、int offset、int count)

オフセットから始まる配列内の count コードポイントから文字列を構築します。

  • ブール値の空()

  • ブール値の空白()

文字列が空であるか、スペースで構成されている場合は true を返します。

  • ブール値等しい(その他のオブジェクト)

文字列が他の文字列と等しい場合は true を返します

  • booleanqualsIgnoreCase(その他のオブジェクト)

文字列が他の文字列と等しい場合に true を返します (大文字と小文字は区別されません)。

  • ブール値でstartsWith(文字列プレフィックス)

  • boolean endWith (文字列接尾辞)

文字列がプレフィックスで始まるか、サフィックス または で終わる場合は true を返します。

  • int IndexOf (文字列 str)

  • int IndexOf (String str,int fromIndex)

  • int IndexOf (int cp)

  • int IndexOf (int cp,int fromIndex)

文字列 Str またはコード ポイント cp に一致する最初の部分文字列の開始位置を返します。インデックス 0 または fromIndex からマッチングを開始します。元の文字列に str が存在しない場合は、-1 が返されます。

  • int lastIndexOf (文字列 str)

  • int lastIndexOf (文字列 str,int fromIndex)

  • int lastindexOf (int cp)

  • int lastindexOf (int cp,int fromIndex)

文字列 Str またはコード ポイント cp に一致する最後の部分文字列の開始位置を返します。元の文字列または fromIndex の末尾から開始して一致します。

  • int の長さ( )

文字列コード単位の数を返します。

  • int codePointCount(int startIndex,int endIndex)

startIndex と endIndex-1 の間のコード ポイントの数を返します。

  • 文字列置換 (CharSequence oldString,CharSequence newString)

元の文字列内のすべての oldString を newString に置き換えた文字列を返します。String または StringBuilder オブジェクトを CharSequence パラメーターとして使用できます。

  • 文字列の部分文字列( int beginIndex)

beginIndex から文字列の末尾までのすべての文字を含む文字列を返します。

  • 文字列部分文字列( int beginIndex,int endIndex)

beginIndex から endIndex-1 までのすべての文字を含む文字列を返します。

  • 文字列 toLowerCase( )

元の文字列の大文字を小文字に変更します。

  • 文字列 toUpperCase( )

元の文字の小文字をすべて大文字に変更します。

  • 文字列トリム( )

  • 文字列ストリップ( )

この文字列は、元の文字列の先頭と末尾から U+0020 以下の文字 (トリム) またはスペース (ストリップ) を削除します。

  • 文字列結合(CharSequenceデリミタ、CharSequence…要素)

すべての要素を指定された区切り文字で結合します。

  • 文字列の繰り返し(int count)

現在の文字列を count 回繰り返し/コピーします。

StringAPI ドキュメントを表示する

  • API ドキュメントは Oracle からダウンロードしてローカルに保存できます。
  • ブラウザでも利用可能: https://docs.oracle.com/javase/9​​/docs/api

文字列を構築します (StringBuffer):

場合によっては、ファイルのキーストロークや単語など、より短い文字列から文字列を構築する必要があります。この目的を達成するために文字列連結を使用すると、効率は比較的低くなります。文字列が結合されるたびに、新しい String オブジェクトが構築されますが、これには時間とスペースがかかります。この問題は StringBuilder を使用して解決できます。

多数の小さな文字列セグメントから文字列を構築する

		String ch = "Hello";
     String str = "World";
     String str2 = "...";

     //构建一个空的 字符串构建器
     StringBuilder builder = new StringBuilder();
     //当每次需要添加一部分内容时,就调用append方法
     builder.append(ch);
     builder.append(str);
     builder.append(str2);
//当字符串构建完成时就调用toString方法,将可以得到一个String对象,其中包含了构造器中的字符序列。
     String completeString = builder.toString(); //HelloWorld...

StringBuffer クラスで一般的に使用される重要なメソッド:

  • StringBuilder( )

    空の文字列コンストラクターを構築します。

  • int の長さ()

    コンストラクターまたはバッファー内のコード単位の数を返します。

  • StringBuilder append(String str)

    文字列を追加してこれを返します

  • StringBuilder append(char c)

    コードユニットを追加してこれを返します

  • StringBuilder appendCodePoint(int cp)

    コードポイントを追加し、それを 1 つまたは 2 つのコード単位に変換して返します。

  • void setCharAt(int i,char c)

    i 番目のコード単位を c に設定します

  • StringBuilder 挿入(int オフセット .String str)

    オフセット位置に文字列を挿入して返します

  • StringBuilder insert(int offset .char c)

    オフセット位置にワードコードユニットを挿入して返します。

  • StringBuilder delete(int startIndex ,int endIndex)

    startIndex から startIndex -1 までのオフセットを持つコードユニットを削除し、これを返します

  • 文字列 toString()

    ビルダーまたはバッファの内容と同一の文字列を返します。

おすすめ

転載: blog.csdn.net/m0_70720417/article/details/132178934