JavaRush /Java Blog /Random-JA /Javaの文字列クラス

Javaの文字列クラス

Random-JA グループに公開済み
Java のString クラスは、Java で文字列を操作するように設計されています。Java プログラムで定義されたすべての文字列リテラル (「abc」など) は、String クラスのインスタンスです。その主な特徴を見てみましょう。
  1. このクラスはSerializableおよびインターフェイスを実装しますCharSequence。パッケージに含まれているためjava.lang、インポートする必要はありません。
  2. Java のStringクラスは最終クラスであり、子を持つことができません。
  3. String クラスは不変クラスです。つまり、そのオブジェクトは作成後に変更できません。String クラスのオブジェクトを生成する String オブジェクトに対する操作を行うと、新しいオブジェクトが作成されます。
  4. String クラス オブジェクトは不変であるため、スレッド セーフであり、マルチスレッド環境で使用できます。
  5. toStringJava のすべてのオブジェクトは、すべての Java クラスがクラスから継承するメソッドを通じて文字列に変換できますObject
Java の文字列クラス - 1

Java 文字列の操作

これは、Java で最もよく使用されるクラスの 1 つです。文字列内の特定の文字の分析、文字列の比較と検索、部分文字列の抽出、すべての文字を小文字と大文字に変換した文字列のコピーの作成などのメソッドがあります。String クラスのすべてのメソッドのリストは、公式ドキュメントにあります。Java は、プリミティブを文字列に、またはその逆に変換する連結 (文字列の接続) のための単純なメカニズムも実装しています。Java で String クラスを操作する例をいくつか見てみましょう。

文字列の作成

String クラスのインスタンスを作成する最も簡単な方法は、それに文字列リテラルの値を割り当てることです。
String s = "I love movies";
ただし、String クラスには、次のことを可能にする多くのコンストラクターがあります。
  • 空の文字列を含むオブジェクトを作成する
  • 文字列変数のコピーを作成する
  • 文字配列に基づいて文字列を作成する
  • バイト配列に基づいて文字列を作成します(エンコーディングを考慮して)

文字列の追加

Java で 2 つの文字列を追加するのは、. を使用すると非常に簡単です+。Java では、変数と文字列リテラルの両方を相互に追加できます。
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
String クラスのオブジェクトを他のクラスのオブジェクトと追加することにより、後者を文字列形式に縮小します。toString他のクラスのオブジェクトの文字列表現への変換は、オブジェクトに対する暗黙的なメソッド呼び出しを通じて実行されます。次の例でこれを示してみましょう。
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

文字列比較

文字列を比較するには、次のメソッドを使用できますequals()
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
文字列を比較するときに大文字と小文字が重要でない場合は、次のメソッドを使用する必要がありますequalsIgnoreCase()
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

オブジェクト/プリミティブを文字列に変換する

任意の Java クラスのインスタンスまたは任意のプリミティブ データ型を文字列表現に変換するには、次のメソッドを使用できますString.valueOf()
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

文字列を数値に変換する

多くの場合、文字列を数値に変換する必要があります。プリミティブ型のラッパー クラスには、まさにこの目的を果たすメソッドがあります。これらのメソッドはすべて parse という単語で始まります。Integer以下の文字列を整数 ( ) と小数 ( )に変換することを考えてみましょうDouble
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

文字列のコレクションを文字列表現に変換する

文字列のコレクションのすべての要素を、任意の区切り文字を使用して文字列表現に変換する必要がある場合は、Java String クラスの次のメソッドを使用できます。
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
ここでdelimiter、 は要素の区切り文字、 はelements文字列配列/文字列コレクションのインスタンスです。それぞれをセミコロンで区切って、文字列のリストを文字列に変換する例を見てみましょう。
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

文字列を文字列の配列に分割する

split(String regex) この操作は、 「区切り文字は文字列正規表現です」というメソッドによって実行されますregex。以下の例では、前の例で実行した操作とは逆の操作を実行します。
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

行内の要素の位置を決定する

Java 言語では、String は文字列内の文字/部分文字列の位置を決定する一連のメソッドを提供します。
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
どこ:
  1. ch— 探している記号 ( char)
  2. str- 検索文字列
  3. fromIndex— 要素を検索する位置
  4. メソッドindexOf- 最初に見つかった要素の位置を返します。
  5. メソッドlastIndexOf- 最後に見つかった要素の位置を返します。
探している要素が見つからない場合、メソッドは行 -1 を返します。A英語のアルファベットの文字、K、のシリアル番号を見つけてみましょう。ただし、Java の文字列内の文字のインデックス付けは 0 から始まることに注意してください ZЯ
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

文字列から部分文字列を抽出する

文字列から部分文字列を抽出するために、Java の String クラスには次のメソッドが用意されています。
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
要素の配置メソッドと部分文字列抽出メソッドを使用して、パスからファイル名を取得する方法を見てみましょう。
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

文字列を大文字/小文字に変換します。

String クラスは、文字列を大文字と小文字に変換するためのメソッドを提供します。
  • toLowerCase()
  • toUpperCase()
例を使用して、これらのメソッドがどのように機能するかを見てみましょう。
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
この Java クラスの操作は、JavaRush オンライン コースの初期レベルで学習されます。

追加の情報源

String クラスに関する情報は、JavaRush コミュニティの他の記事でも提供されています。
  1. Java の文字列- この記事では、Java での文字列の操作に関するいくつかの基本について説明します。
  2. Java 文字列。面接の質問と回答、パート 1 - この記事では、トピックに関する面接の質問について説明しString、質問に対する回答を説明とコード例とともに提供します。
  3. Java の文字列 (クラス java.lang.String) - この記事では、String クラスの詳細な分析を提供し、このクラスの操作の複雑さについても説明します。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION