文字列メソッドJava



Java 文字列

Javaプログラミング言語では、文字列は文字のシーケンスに他なりません。 これは最も広く使用されているオブジェクトです。 Java Stringクラスには、さまざまな操作に使用される多くのメソッドがあります。 不変です。つまり、値を変更することはできません。 文字列は文字の配列に相当します。

Javaで文字列を作成する

2つの異なる方法を使用して文字列を作成できます。

  • 文字列リテラルを使用する
  • 新しいキーワードを使用する

文字列リテラルを使用して文字列を作成する

これは、を作成する最も直接的な方法です。 文字列 Javaで。 値を二重引用符で囲むことにより、文字列を作成できます。 ここで、String型の変数「value」は、「Java言語」という名前の文字列を保持します。

String value = "Java language";

文字列リテラルを作成するとき、JVMは最初に「文字列定数プール」で文字列が存在するかどうかをチェックします。 存在しない場合、JVMは新しい文字列インスタンスを作成します。存在しない場合は、プールされたインスタンスへの参照のみが返されます。 たとえば、以下の場合、両方の文字列オブジェクトは同じ値を保持します。 したがって、1つのオブジェクト(つまりs1)のみが作成され、s2はs1への参照を持ちます。 つまり、同じ値で作成する文字列変数の数に関係なく、文字列定数プールに作成されるインスタンスは1つだけです。

「文字列定数プール」は、文字列オブジェクトを保持するための特別なメモリに他なりません。

String s1 = "Java language"; 
String s2 = "Java language";

Javaの文字列

新しいキーワードを使用して文字列を作成する

同じ文字列値を保持する2つの異なるオブジェクトが必要な場合は、 新製品 以下に説明するキーワード。 この場合、JVMはヒープメモリに2つの異なる文字列オブジェクトを作成します

String s1 = new String("Java");
String s2 = new String("Java");

Javaの文字列

文字列メソッドJava

java.lang.Stringクラスは、以下で説明するように、さまざまな文字列操作に使用されるさまざまなメソッドをサポートします。

方法説明パラメーター
char charAt(int index)入力文字列の指定されたインデックスにある文字を返しますindex-文字列のインデックス値
int codePointAt(int index)指定されたインデックスにある文字のUnicode値を返しますindex-文字列のインデックス値
int codePointBefore(int index)指定されたインデックスの前に存在する文字のUnicode値を返しますindex-文字列のインデックス値
int compareTo(String anotherstring)文字のUnicode値に基づいて2つの文字列を比較し、引数文字列の前にある場合は負の値を返し、それ以外の場合は正の値を返します。 両方の文字列が等しい場合、戻り値は0です。anotherstring-文字列オブジェクトと比較する文字列
int compareToIgnoreCase(String anotherstring)大文字と小文字を区別しないことを除いて、compareToメソッドに似ています。anotherstring-文字列オブジェクトと比較する文字列
文字列concat(文字列str)XNUMXつの文字列値を連結しますstr-文字列オブジェクト値と連結する文字列
ブール値contains(CharSequence c)文字列に指定された文字シーケンスが含まれているかどうかを確認し、存在する場合はtrueを返しますc-文字列で検索する文字シーケンス
boolean contentEquals(CharSequence c)文字列に正確な文字シーケンスが含まれているかどうかを確認し、存在する場合はtrueを返しますc-文字列で検索する文字シーケンス
ブール値contentEquals(StringBuffer sb)文字列に指定された文字列バッファが含まれているかどうかを確認し、存在する場合はtrueを返しますsb-文字列バッファの内容
ブール値endsWith(文字列サフィックス)文字列が指定されたサフィックスで終わっているかどうかを確認し、存在する場合はtrueを返しますサフィックス-文字列をチェックインするサフィックス
boolean equals(Object obj)文字列オブジェクトと渡されたオブジェクトの類似性をチェックし、等しい場合はtrueを返しますobj-比較するオブジェクト
boolean equalsIgnoreCase(String str)大文字と小文字を区別せずにXNUMXつの文字列を比較し、両方の文字列が等しい場合はtrueを返しますstr-比較する文字列
int indexOf(int ch)文字列内で指定されたUnicode文字が最初に出現するインデックスを返しますch-文字のUnicode値
int indexOf(String str)文字列内で指定された部分文字列が最初に出現するインデックスを返しますstr-文字列に存在する部分文字列値
ブールisBlank()文字列が空であるか、空のスペースのみが含まれている場合はtrueを返します
ブールisEmpty()文字列が空の場合(つまり、長さが0の場合)はtrueを返します
int lastindexOf(int ch)文字列内で最後に出現したUnicode文字のインデックスを返しますch-文字のUnicode値
int lastindexOf(String str)文字列内の指定された部分文字列の最後の出現のインデックスを返しますstr-文字列に存在する部分文字列値
int length()文字列の長さを返します
ブール一致(文字列正規表現)文字列が指定された正規表現と一致する場合はtrueを返しますregex-チェックする正規表現
文字列repeat(int count)カウントに基づいて文字列を連結しますcount-入力文字列を連結する回数
文字列replace(char oldchar、char newchar)文字のすべての出現箇所を新しい文字に置き換えることにより、新しい文字列を返しますoldchar-置き換える文字
newchar-置き換えられる文字
String [] split(string regexp)正規表現に基づいて文字列を分割します。 配列を返しますregexp-文字列を分割する区切り文字
String [] split(String regexp、int limit)正規表現と適用する必要のある回数に基づいて文字列を分割しますregexp-文字列を分割する区切り文字
制限-パターンを適用する必要がある回数
ブールstartsWith(文字列プレフィックス)指定された文字列が指定されたプレフィックスで始まるかどうかを確認します。 存在する場合はtrueを返しますprefix-文字列をチェックインするプレフィックス
ブールstartsWith(String prefix、int tooffset)指定された文字列がtooffsetパラメータに基づいて指定されたプレフィックスで始まるかどうかを確認します。存在する場合はtrueを返します。prefix-文字列をチェックインするプレフィックス
tooffset-検索を開始する必要があるインデックス
文字列strip()先頭と末尾の両方のすべての空白が削除された文字列を返します
文字列stripLeading()先頭のスペースをすべて削除した文字列のサブ文字列を返します
文字列stripTrailing()末尾のスペースをすべて削除した文字列のサブ文字列を返します
CharSequence subSequence(int startIndex、int endIndex)開始インデックスと終了インデックスに基づいて文字列の文字シーケンスを返しますstartIndex-部分文字列を取得する必要のあるインデックス
endIndex-部分文字列を取得する必要があるインデックス
文字列subString(int startIndex)開始インデックスに基づいて文字列のサブ文字列を返しますstartIndex-部分文字列を取得する必要のあるインデックス
文字列subString(int startIndex、int endIndex)開始インデックスと終了インデックスに基づいて文字列のサブ文字列を返しますstartIndex-部分文字列を取得する必要のあるインデックス
endIndex-部分文字列を取得する必要があるインデックス
char []からCharArray()文字列を文字配列に変換します
文字列toLowerCase()文字列内のすべての文字を小文字に変換します
文字列toLowerCase(ロケールロケール)ロケールルールに基づいて、文字列内のすべての文字を小文字に変換しますlocale-適用されるロケールルール
ストリングtoString()文字列自体を返します
文字列toUpperCase()文字列内のすべての文字を大文字に変換します
文字列toUpperCase(ロケールロケール)ロケールルールに基づいて、文字列内のすべての文字を大文字に変換しますlocale-適用されるロケールルール
文字列trim()先頭と末尾のスペースをすべて削除した文字列を返します
String formatString(String format、Object ... args)フォーマットと引数に基づいてフォーマットされた文字列を返しますformat-フォーマット指定子
args-フォーマット指定子によって参照される引数
文字列結合(CharSequence区切り文字、CharSequence ...要素)区切り文字を使用して文字シーケンス要素を結合しますdelimiter-参加する区切り文字
要素-結合する文字列要素
文字列valueOf(ブールb)ブール引数の文字列表現を返します。 trueが渡された場合、trueを返しますb-trueまたはfalseとしてのブール値
文字列valueOf(char c)文字の引数の文字列表現を返しますc-文字
文字列valueOf(char [] data)文字配列引数の文字列表現を返しますデータ-文字配列
文字列valueOf(double d)double引数の文字列表現を返しますd-倍の値
文字列valueOf(float f)float引数の文字列表現を返しますf-浮動小数点値
文字列valueOf(int i)整数引数の文字列表現を返しますi-整数値
文字列valueIOf(long l)長い引数の文字列表現を返しますl-長い値
文字列valueOf(Object obj)オブジェクト引数の文字列表現を返しますobj-オブジェクト
文字列valueOf(char [] data、int offset、int count)オフセットとカウントに基づいて、特定の部分文字列文字配列引数の文字列表現を返しますデータ-文字配列
オフセット-インデックスの開始
count-部分文字列の長さ

例:配列文字から文字列を作成するJavaプログラム

以下の例では、 配列 newキーワードを使用したJavaの文字列への文字の変換。

public class StringDemo1 {

  public static void main(String[] args) {
    char[] c = {'j','a','v','a'};
    String s = new String(c);
    System.out.println(s);
    
  }

}
Output:
java

例:length()、charAt()、indexOf()メソッドの使用

次の例は、特定のインデックスで文字を取得する方法、文字列の長さを取得する方法、および特定の文字のインデックスを取得する方法を示しています。

public class StringDemo2 {

  public static void main(String[] args) {
    String s1 = new String("Java tutorial");
    System.out.println("The character at index 6 is : " + s1.charAt(6));
    System.out.println("The length of the input string is : " + s1.length());
    System.out.println("The index of letter 'v' is : " + s1.indexOf('v'));
  }

}
Output:
The character at index 6 is : u
The length of the input string is : 13
The index of letter 'v' is : 2

例:compareTo()、contentEquals()、contains()の使用

この例は、Javaの2つの文字列の比較を示しています

  1. 入力文字列が引数文字列の後に続くため、compareTo()はここで正の整数を返します。
  2. compareToIgnoreCase()は、大文字と小文字に関係なく両方の文字列が等しいため、0を返します。
  3. 入力文字列には引数文字列が含まれているため、contains()はtrueを返します
  4. 入力文字列に正確な引数文字列が含まれていないため、contentEquals()はfalseを返します。
public class StringDemo2 {

  public static void main(String[] args) {
    String s1 = new String("Java tutorial");
    System.out.println("Comparison of input string with argument is : " + s1.compareTo("C++"));
    System.out.println("Comparison of input string with argument ignoring case is : " + s1.compareToIgnoreCase("JAVA TUTORIAL"));
    System.out.println("Output of contains method: " + s1.contains("tutorial"));
    System.out.println("Output of contentEquals method: " + s1.contentEquals("Java"));
    }
}
Output:
Comparison of input string with argument is : 7
Comparison of input string with argument ignoring case is : 0
Output of contains method: true
Output of contentEquals method: false

例:equals()の使用

内容は同じでも大文字と小文字が一致しないため、最初の出力はfalseです。 コンテンツとケースが一致するため、1番目の出力はtrueです。

両方のコンテンツが異なるため、3番目の出力はfalseです。

public class StringDemo3 {

  public static void main(String[] args) {
    String s1 = "java tutorial";
    String s2 = "Java Tutorial";
    String s3 = "java tutorial";
    String s4 = "Tutorial cup";
    System.out.println(s1.equals(s2));
    System.out.println(s1.equals(s3));
    System.out.println(s1.equals(s4));
  }

}
Output:
false
true
false

例:文字列の連結

concat()を使用してJavaで2つの文字列を連結できます Javaのメソッド 文字列クラス。 「+」は、printステートメントで通常使用される2つ以上の文字列を連結するためにも使用されます。 2つの文字列を連結している間、文字列の間にスペースは含まれません。 以下の例では、文字列s3には、printステートメントで新しい文字列とともに使用されるs1とs2の連結値が含まれています。

join()メソッドを使用してJavaで2つの文字列を連結することもできます。 これにより、引数で渡された単語が区切り文字で指定されて結合されます。

public class StringConcat {

  public static void main(String[] args) {
    String s1 = "Hello,";
    String s2 = "how are you";
    String s3 = s1.concat(s2);
    System.out.println(s3 + " today");
    System.out.println(s1.join(",", "welcome","to","tutorialcup"));
  }

}
Output:
Hello,how are you today
welcome,to,tutorialcup

例:文字列を大文字と小文字の間で変換するJavaプログラム

public class StringCase {

  public static void main(String[] args) {
    String s1 = "Welcome to tutorialcup";
    System.out.println("Convert to lower case: " + s1.toLowerCase());
    System.out.println("Convert to upper case: " + s1.toUpperCase());

  }

}
Output:
Convert to lower case: welcome to tutorialcup
Convert to upper case: WELCOME TO TUTORIALCUP

例:Javaでの部分文字列の使用

Javaで文字列の一部を取得するには、 サブストリング 方法。 インデックス値は0から始まります。

public class StringDemo3 {

  public static void main(String[] args) {
    String s1 = "java tutorial";
    System.out.println(s1.substring(3));
    System.out.println(s1.substring(1, 10));
  }

}
Output:
a tutorial
ava tutor

例:分割と置換の使用

Splitは、Javaで最も一般的に使用されるStringのもう2つの方法です。 この例では、最初に区切り文字”“を使用して入力文字列を分割します。 したがって、これは各単語を別々に印刷します。 次に、区切り文字に基づいて分割しますが、limitをXNUMXとして指定します。これは、XNUMXつの文字列配列値にのみ分割されることを意味します。

置換の最初の例では、個々の文字を置換します。 次に、文字シーケンスを置き換えます。

public class StringDemo4 {

  public static void main(String[] args) {
    String str1 = "Welcome to java programming";
    System.out.println("Split output using delimiter:");
    //Split using only delimiter
    String[] arrval = str1.split(" ");
    for(int i=0;i<arrval.length;i++) {
      System.out.println(arrval[i]);
    }
    System.out.println("\nSplit output using delimiter and limit:");
    //Split using delimiter and limit
    String[] arrval2 = str1.split(" ", 2);
    for(int i=0;i<arrval2.length;i++) {
      System.out.println(arrval2[i]);
    }
    
    System.out.println("\nReplace output with character:");
    //Replace character
    String str2 = str1.replace('j', 'J');
    System.out.println(str2);
    System.out.println("\nReplace output with character sequence:");
    String str3 = str1.replace("java", "javascript");
    System.out.println(str3);
  }

}


Output:
Split output using delimiter:
Welcome
to
java
programming

Split output using delimiter and limit:
Welcome
to java programming

Replace output with character:
Welcome to Java programming

Replace output with character sequence:
Welcome to javascript programming

例:Javaフォーマット文字列

私たちは任意のフォーマットを行うことができます データの種類 formatメソッドを使用して文字列に変換します。 ここでは、例としてstring(“%s”)、float(%f”)、boolean(“%b”)を使用しています。

public class StringFormat {

  public static void main(String[] args) {
    String str = "Java";
    String formatstring1 = String.format("Programming language is %s",str);
    String formatstring2 = String.format("Float value is %f", 55.6789);
    String formatstring3 = String.format("Boolean value is %b", true);
    System.out.println(formatstring1);
    System.out.println(formatstring2);
    System.out.println(formatstring3);
  }

}
Output:
Programming language is Java
Float value is 55.678900
Boolean value is true

結論

このチュートリアルでは、Javaでの文字列、文字列を作成するさまざまな方法、さまざまな文字列メソッドについて例とともに学習しました。

参照