で ジャワ , string は基本的に char 値のシーケンスを表すオブジェクトです。アン 配列 の文字は Java 文字列と同じように機能します。例えば:
char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch);
は次と同じです:
String s='javatpoint';
Java文字列 このクラスには、compare()、concat()、equals()、split()、length()、replace()、compareTo()、intern()、substring() など、文字列に対して操作を実行するためのメソッドが多数用意されています。
java.lang.String クラスは以下を実装します。 シリアル化可能 、 匹敵します そして 文字シーケンス インターフェース 。
CharSequence インターフェイス
CharSequence インターフェイスは、文字のシーケンスを表すために使用されます。弦、 文字列バッファ そして 文字列ビルダー クラスがそれを実装します。つまり、これら 3 つのクラスを使用して Java で文字列を作成できます。
Java 文字列は不変です。つまり、変更できません。文字列を変更するたびに、新しいインスタンスが作成されます。変更可能な文字列の場合は、StringBuffer クラスと StringBuilder クラスを使用できます。
不変文字列については後ほど説明します。まず、Java の String とは何か、そして String オブジェクトの作成方法を理解しましょう。
Javaの文字列とは何ですか?
一般に、文字列は一連の文字です。しかし、Java では、string は一連の文字を表すオブジェクトです。 java.lang.String クラスは、文字列オブジェクトの作成に使用されます。
文字列オブジェクトを作成するにはどうすればよいですか?
String オブジェクトを作成するには 2 つの方法があります。
- 文字列リテラルによる
- 新しいキーワードで
1) 文字列リテラル
Java 文字列リテラルは二重引用符を使用して作成されます。例えば:
String s='welcome';
文字列リテラルを作成するたびに、JVM は最初に「文字列定数プール」をチェックします。文字列がプールにすでに存在する場合は、プールされたインスタンスへの参照が返されます。文字列がプールに存在しない場合は、新しい文字列インスタンスが作成され、プールに配置されます。例えば:
String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance
上の例では、オブジェクトは 1 つだけ作成されます。まず、JVM は文字列定数プール内で値「Welcome」を持つ文字列オブジェクトを見つけられないため、新しいオブジェクトを作成します。その後、プール内で値「Welcome」を持つ文字列を見つけます。新しいオブジェクトは作成されませんが、同じインスタンスへの参照が返されます。
注: 文字列オブジェクトは、「文字列定数プール」と呼ばれる特別なメモリ領域に保存されます。
なぜ Java は文字列リテラルの概念を使用するのでしょうか?
Java のメモリ効率を高めるため (文字列定数プールにすでに存在する場合、新しいオブジェクトは作成されないため)。
2) 新しいキーワードによる
String s=new String('Welcome');//creates two objects and one reference variable
このような場合には、 JVM 通常の (非プール) ヒープ メモリに新しい文字列オブジェクトが作成され、リテラルの 'Welcome' が文字列定数プールに配置されます。変数 s は、ヒープ (非プール) 内のオブジェクトを参照します。
文字列Javaを反転する
Java 文字列の例
文字列の例.java
public class StringExample{ public static void main(String args[]){ String s1='java';//creating string by Java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String('example');//creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }}今すぐテストしてください
出力:
java strings example
上記のコードは、 文字 配列を 弦 物体。そして、String オブジェクトを表示します s1、s2 、 そして s3 コンソールで使用して println() 方法。
Java String クラスのメソッド
java.lang.String クラスは、一連の char 値に対して操作を実行するための便利なメソッドを多数提供します。
いいえ。 | 方法 | 説明 |
---|---|---|
1 | char charAt(int インデックス) | 特定のインデックスの char 値を返します。 |
2 | int の長さ() | 文字列の長さを返します |
3 | 静的文字列形式(文字列形式、オブジェクト...引数) | フォーマットされた文字列を返します。 |
4 | 静的文字列形式(ロケールl、文字列形式、オブジェクト...引数) | 指定されたロケールでフォーマットされた文字列を返します。 |
5 | 文字列の部分文字列(int beginIndex) | 指定された開始インデックスの部分文字列を返します。 |
6 | 文字列部分文字列(int beginIndex, int endIndex) | 指定された開始インデックスと終了インデックスの部分文字列を返します。 |
7 | ブール値には次のものが含まれます(CharSequence s) | char 値のシーケンスと一致した後、true または false を返します。 |
8 | 静的 String join(CharSequence デリミタ、CharSequence... 要素) | 結合された文字列を返します。 |
9 | 静的 String join(CharSequence デリミタ、Iterable 要素) | 結合された文字列を返します。 |
10 | ブール値等しい(別のオブジェクト) | 指定されたオブジェクトと文字列が等しいかどうかをチェックします。 |
十一 | ブール値 isEmpty() | 文字列が空かどうかをチェックします。 |
12 | 文字列連結(文字列str) | 指定された文字列を連結します。 |
13 | 文字列置換(古い文字、新しい文字) | 指定された char 値が出現するすべてを置き換えます。 |
14 | 文字列置換(古いCharSequence、新しいCharSequence) | 指定された CharSequence の出現箇所をすべて置き換えます。 |
15 | 静的 StringqualsIgnoreCase(String another) | 別の文字列を比較します。大文字と小文字はチェックされません。 |
16 | String[] 分割(文字列正規表現) | 正規表現に一致する分割文字列を返します。 |
17 | String[] 分割(文字列正規表現、整数制限) | 正規表現と制限に一致する分割文字列を返します。 |
18 | 文字列インターン() | インターン化された文字列を返します。 |
19 | int インデックスOf(int ch) | 指定された文字値インデックスを返します。 |
二十 | int IndexOf(int ch, int fromIndex) | 指定されたインデックスで始まる指定された char 値インデックスを返します。 |
21 | int IndexOf(文字列の部分文字列) | 指定された部分文字列インデックスを返します。 |
22 | int IndexOf(文字列部分文字列, int fromIndex) | 指定されたインデックスで始まる指定された部分文字列インデックスを返します。 |
23 | 文字列をLowerCase()に変換 | 小文字の文字列を返します。 |
24 | 文字列を小文字に変換(ロケール l) | 指定されたロケールを使用して小文字の文字列を返します。 |
25 | 文字列 toUpperCase() | 大文字の文字列を返します。 |
26 | 文字列を大文字に変換(ロケール l) | 指定されたロケールを使用して大文字の文字列を返します。 |
27 | 文字列トリム() | この文字列の先頭と末尾のスペースが削除されます。 |
28 | 静的文字列 valueOf(int 値) | 指定された型を文字列に変換します。オーバーロードされたメソッドです。 |
あなたは知っていますか?
- String オブジェクトが不変なのはなぜですか?
- 不変クラスを作成するにはどうすればよいですか?
- 文字列定数プールとは何ですか?
- 任意の文字列を + (文字列連結演算子) で連結すると、コンパイラによってどのようなコードが作成されますか?
- StringBuffer クラスと StringBuilder クラスの違いは何ですか?
文字列処理では何を学ぶのでしょうか?
- 文字列の概念
- 不変の文字列
- 文字列の比較
- 文字列の連結
- 部分文字列の概念
- String クラスのメソッドとその使用法
- StringBuffer クラス
- StringBuilder クラス
- 不変クラスの作成
- toString() メソッド
- StringTokenizer クラス