Java 文字列
Java 文字列
このチュートリアルでは、例を使用して Java 文字列、その作成方法、および String クラスのさまざまなメソッドについて学習します。
Java では、文字列は一連の文字です。例:「こんにちは」 文字列 'h' を含む文字列です , 'e' 、'l' 、'l' 、および 'o' .
二重引用符を使用します Java で文字列を表現します。たとえば、
// create a string
String type = "Java programming";
ここでは、type という名前の文字列変数を作成しました。 .変数は文字列 Java Programming
で初期化されます .
例:Java で文字列を作成する
class Main {
public static void main(String[] args) {
// create strings
String first = "Java";
String second = "Python";
String third = "JavaScript";
// print strings
System.out.println(first); // print Java
System.out.println(second); // print Python
System.out.println(third); // print JavaScript
}
}
上記の例では、first という名前の 3 つの文字列を作成しました。 、秒 、および3番目 .ここでは、プリミティブ型のような文字列を直接作成しています。
ただし、Java 文字列を作成する別の方法があります (new
を使用)。 キーワード)。これについては、このチュートリアルの後半で学習します。
注意 :Java の文字列はプリミティブ型ではありません (int
など) 、 char
など)。代わりに、すべての文字列は String
という名前の定義済みクラスのオブジェクトです .
そして、すべての文字列変数は String
のインスタンスです クラス。
Java 文字列操作
Java String には、文字列に対してさまざまな操作を実行するためのさまざまなメソッドが用意されています。一般的に使用される文字列操作のいくつかを見ていきます。
1.文字列の長さを取得
文字列の長さを見つけるには、length()
を使用します 文字列のメソッド。たとえば、
class Main {
public static void main(String[] args) {
// create a string
String greet = "Hello! World";
System.out.println("String: " + greet);
// get the length of greet
int length = greet.length();
System.out.println("Length: " + length);
}
}
出力
String: Hello! World Length: 12
上記の例では、 length()
メソッドは、文字列の合計文字数を計算して返します。詳細については、Java String length() を参照してください。
2. 2 つの Java 文字列を結合
concat()
を使用して、Java で 2 つの文字列を結合できます。 方法。たとえば、
class Main {
public static void main(String[] args) {
// create first string
String first = "Java ";
System.out.println("First String: " + first);
// create second
String second = "Programming";
System.out.println("Second String: " + second);
// join two strings
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
}
}
出力
First String: Java Second String: Programming Joined String: Java Programming
上記の例では、first という名前の 2 つの文字列を作成しました。 そして秒 .声明に注目してください、
String joinedString = first.concat(second);
ここでは、concat()
メソッドは秒に参加します 最初の文字列 文字列を作成し、それを joinedString に割り当てます
+
を使用して 2 つの文字列を結合することもできます Java の演算子。詳細については、Java String concat() を参照してください。
3. 2 つの文字列を比較
Java では、equals()
を使用して 2 つの文字列を比較できます。 方法。たとえば、
class Main {
public static void main(String[] args) {
// create 3 strings
String first = "java programming";
String second = "java programming";
String third = "python programming";
// compare first and second strings
boolean result1 = first.equals(second);
System.out.println("Strings first and second are equal: " + result1);
// compare first and third strings
boolean result2 = first.equals(third);
System.out.println("Strings first and third are equal: " + result2);
}
}
出力
Strings first and second are equal: true Strings first and third are equal: false
上記の例では、first という名前の 3 つの文字列を作成しました。 、秒 、および3番目 .ここでは、equal()
を使用しています。 ある文字列が別の文字列と等しいかどうかをチェックするメソッド。
equals()
メソッドは、文字列を比較しながら内容をチェックします。詳細については、Java String equals() を参照してください。
注意 :==
を使用して 2 つの文字列を比較することもできます Java の演算子。ただし、このアプローチは equals()
とは異なります。 方法。詳細については、Java String ==vs equals() をご覧ください。
Java 文字列のエスケープ文字
エスケープ文字は、文字列内に存在する一部の文字をエスケープするために使用されます。
文字列内に二重引用符を含める必要があるとします。
// include double quote
String example = "This is the "String" class";
文字列は二重引用符で表されるため 、コンパイラは "This is the " を扱います 文字列として。したがって、上記のコードではエラーが発生します。
この問題を解決するために、エスケープ文字 \
を使用します Javaで。たとえば、
// use the escape character
String example = "This is the \"String\" class.";
エスケープ文字がコンパイラに 二重引用符 をエスケープするように指示するようになりました テキスト全体を読んでください。
Java 文字列は不変
Java では、文字列は不変です .つまり、一度文字列を作成すると、その文字列を変更することはできません。
より深く理解するために、例を考えてみましょう:
// create a string
String example = "Hello! ";
ここでは、example という名前の文字列変数を作成しました。 .変数は文字列 "Hello! " を保持します .
ここで、文字列を変更したいとします。
// add another string "World"
// to the previous tring example
example = example.concat(" World");
ここでは、concat()
を使用しています。 別の文字列 World を追加するメソッド 前の文字列に戻ります。
前の文字列の値を変更できるようです。ただし、これは true
ではありません .
ここで何が起こったのか見てみましょう、
<オール>new キーワードを使用した文字列の作成
これまで、Java でプリミティブ型のような文字列を作成してきました。
Java の文字列はオブジェクトであるため、new
を使用して文字列を作成できます。 キーワードも。たとえば、
// create a string using the new keyword
String name = new String("Java String");
上記の例では、文字列 name を作成しました new
を使用して キーワード。
ここで、文字列オブジェクトを作成すると、String()
コンストラクタが呼び出されます。コンストラクターの詳細については、Java コンストラクターにアクセスしてください。
注意 :String
クラスは、文字列を作成するための他のさまざまなコンストラクターを提供します。詳細については、Java String (Java の公式ドキュメント) を参照してください。
例:new キーワードを使用して Java 文字列を作成する
class Main {
public static void main(String[] args) {
// create a string using new
String name = new String("Java String");
System.out.println(name); // print Java String
}
}
リテラルと新しいキーワードを使用して文字列を作成する
文字列リテラルと new
を使用して文字列を作成する方法がわかったので、 キーワード、それらの主な違いを見てみましょう.
Java では、JVM が 文字列プール を維持します すべての文字列をメモリ内に格納します。文字列プールは、文字列の再利用に役立ちます。
1. 文字列リテラルを使用して文字列を作成している間、
String example = "Java";
ここでは、文字列 (Java
) の値を直接提供しています。 )。したがって、コンパイラは最初に文字列プールをチェックして、文字列が既に存在するかどうかを確認します。
- 文字列が既に存在する場合 、新しい文字列は作成されません。代わりに、新しいリファレンス example 既存の文字列 (
Java
). - 文字列が存在しない場合 、新しい文字列 (
Java
作成されます。
2. new キーワードを使用して文字列を作成している間、
String example = new String("Java");
ここでは、文字列の値は直接提供されません。したがって、新しい "Java"
"Java"
でも文字列が作成される は既にメモリ プール内に存在します。
Java 文字列のメソッド
上記以外にも、Java にはさまざまな文字列メソッドが存在します。これらのメソッドの一部を次に示します:
メソッド | 説明 |
---|---|
contains() | 文字列に部分文字列が含まれているかどうかをチェックします |
substring() | 文字列の部分文字列を返します |
join() | 区切り文字を使用して指定された文字列を結合 |
replace() | 指定された古い文字を指定された新しい文字に置き換えます |
replaceAll() | 正規表現パターンに一致するすべての部分文字列を置き換えます |
replaceFirst() | 最初に一致した部分文字列を置換 |
charAt() | 指定された場所に存在する文字を返します |
getBytes() | 文字列をバイト配列に変換します |
indexOf() | 文字列内の指定された文字の位置を返します |
compareTo() | 2 つの文字列を辞書順に比較します |
compareToIgnoreCase() | 大文字と小文字の違いを無視して 2 つの文字列を比較します |
トリム() | 先頭と末尾の空白を削除します |
format() | フォーマットされた文字列を返します |
split() | 文字列を文字列の配列に分割します |
toLowerCase() | 文字列を小文字に変換します |
toUpperCase() | 文字列を大文字に変換します |
valueOf() | 指定された引数の文字列表現を返します |
toCharArray() | 文字列を char に変換します 配列 |
matches() | 文字列が指定された正規表現と一致するかどうかをチェックします |
startsWith() | 文字列が指定された文字列で始まるかどうかをチェックします |
endsWith() | 文字列が指定された文字列で終わるかどうかをチェックします |
isEmpty() | 文字列が空かそうでないかをチェックします |
インターン() | 文字列の正規表現を返します |
contentEquals() | 文字列が charSequence と等しいかどうかをチェックします |
hashCode() | 文字列のハッシュ コードを返します |
subSequence() | 文字列からサブシーケンスを返します |
Java