Java-strings

提供:Dev Guides
移動先:案内検索

Java-文字列クラス

Javaプログラミングで広く使用されている文字列は、一連の文字です。 Javaプログラミング言語では、文字列はオブジェクトとして扱われます。

Javaプラットフォームは、文字列を作成および操作するStringクラスを提供します。

文字列を作成する

文字列を作成する最も直接的な方法は、書くことです-

String greeting = "Hello world!";

コード内で文字列リテラルが検出されるたびに、コンパイラはこの場合の値「Hello world!」でStringオブジェクトを作成します。

他のオブジェクトと同様に、新しいキーワードとコンストラクターを使用してStringオブジェクトを作成できます。 Stringクラスには11個のコンストラクターがあり、文字の配列などのさまざまなソースを使用して、ストリングの初期値を提供できます。

public class StringDemo {

   public static void main(String args[]) {
      char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
      String helloString = new String(helloArray);
      System.out.println( helloString );
   }
}

これは、次の結果を生成します-

出力

hello.

-Stringクラスは不変であるため、一度作成されたStringオブジェクトは変更できません。 文字列に多くの変更を加える必要がある場合は、link:/java/java_string_buffer [String Buffer&String Builder] Classesを使用する必要があります。

ストリングの長さ

オブジェクトに関する情報を取得するために使用されるメソッドは、*アクセサメソッド*と呼ばれます。 文字列で使用できる1つのアクセサメソッドはlength()メソッドです。このメソッドは、文字列オブジェクトに含まれる文字数を返します。

次のプログラムは、* length()*、メソッドStringクラスの例です。

public class StringDemo {

   public static void main(String args[]) {
      String palindrome = "Dot saw I was Tod";
      int len = palindrome.length();
      System.out.println( "String Length is : " + len );
   }
}

これは、次の結果を生成します-

出力

String Length is : 17

文字列の連結

文字列クラスには、2つの文字列を連結するためのメソッドが含まれています-

string1.concat(string2);

これは、最後にstring2が追加されたstring1である新しい文字列を返します。 次のように、文字列リテラルでconcat()メソッドを使用することもできます-

"My name is ".concat("Zara");

文字列は、一般的に+と連結されます。演算子-

"Hello," + " world" + "!"

その結果-

"Hello, world!"

私たちは次の例を見てみましょう-

public class StringDemo {

   public static void main(String args[]) {
      String string1 = "saw I was ";
      System.out.println("Dot " + string1 + "Tod");
   }
}

これは、次の結果を生成します-

出力

Dot saw I was Tod

フォーマット文字列の作成

フォーマットされた数値で出力を印刷するには、printf()およびformat()メソッドがあります。 Stringクラスには、PrintStreamオブジェクトではなくStringオブジェクトを返す同等のクラスメソッドformat()があります。

Stringのstatic format()メソッドを使用すると、1回限りのprintステートメントではなく、再利用できるフォーマットされた文字列を作成できます。 たとえば、代わりに-

System.out.printf("The value of the float variable is " +
                  "%f, while the value of the integer " +
                  "variable is %d, and the string " +
                  "is %s", floatVar, intVar, stringVar);

あなたが書くことができます-

String fs;
fs = String.format("The value of the float variable is " +
                   "%f, while the value of the integer " +
                   "variable is %d, and the string " +
                   "is %s", floatVar, intVar, stringVar);
System.out.println(fs);

文字列メソッド

以下は、Stringクラスでサポートされているメソッドのリストです-

Sr.No. Method & Description
1

char charAt(int index)

指定されたインデックスにある文字を返します。

2

int compareTo(Object o)

この文字列を別のオブジェクトと比較します。

3

int compareTo(String anotherString)

2つの文字列を辞書式に比較します。

4

int compareToIgnoreCase(String str)

大文字と小文字の違いを無視して、2つの文字列を辞書式に比較します。

5

String concat(String str)

指定された文字列をこの文字列の末尾に連結します。

6

boolean contentEquals(StringBuffer sb)

このStringが指定されたStringBufferと同じ文字シーケンスを表す場合にのみtrueを返します。

7

static String copyValueOf(char[ data)]

指定された配列内の文字シーケンスを表す文字列を返します。

8

static String copyValueOf(char[ data, int offset, int count)]

指定された配列内の文字シーケンスを表す文字列を返します。

9

boolean endsWith(String suffix)

この文字列が指定されたサフィックスで終わるかどうかをテストします。

10

boolean equals(Object anObject)

この文字列を指定されたオブジェクトと比較します。

11

boolean equalsIgnoreCase(String anotherString)

この文字列を別の文字列と比較し、大文字と小文字の区別を無視します。

12

byte getBytes()

プラットフォームのデフォルトの文字セットを使用してこの文字列をバイトのシーケンスにエンコードし、結果を新しいバイト配列に格納します。

13

byte[ getBytes(String charsetName)]

名前付き文字セットを使用してこの文字列をバイトのシーケンスにエンコードし、結果を新しいバイト配列に格納します。

14

void getChars(int srcBegin, int srcEnd, char[ dst, int dstBegin)]

この文字列からコピー先の文字配列に文字をコピーします。

15

int hashCode()

この文字列のハッシュコードを返します。

16

int indexOf(int ch)

この文字列内で、指定された文字が最初に現れるインデックスを返します。

17

int indexOf(int ch, int fromIndex)

この文字列内で指定された文字が最初に出現した位置のインデックスを返し、指定されたインデックスから検索を開始します。

18

int indexOf(String str)

この文字列内で、指定された部分文字列が最初に現れるインデックスを返します。

19

int indexOf(String str, int fromIndex)

指定されたインデックスで始まる、指定された部分文字列の最初の出現のこの文字列内のインデックスを返します。

20

String intern()

文字列オブジェクトの正規表現を返します。

21

int lastIndexOf(int ch)

この文字列内で、指定された文字が最後に出現するインデックスを返します。

22

int lastIndexOf(int ch, int fromIndex)

この文字列内で指定された文字の最後の出現のインデックスを返し、指定されたインデックスから逆方向に検索します。

23

int lastIndexOf(String str)

この文字列内で、指定された部分文字列の右端の出現のインデックスを返します。

24

int lastIndexOf(String str, int fromIndex)

この文字列内で、指定された部分文字列の最後の出現のインデックスを返します。指定されたインデックスから逆方向に検索します。

25

int length()

この文字列の長さを返します。

26

boolean matches(String regex)

この文字列が指定された正規表現と一致するかどうかを判断します。

27

boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)

2つの文字列領域が等しいかどうかをテストします。

28

boolean regionMatches(int toffset, String other, int ooffset, int len)

2つの文字列領域が等しいかどうかをテストします。

29

String replace(char oldChar, char newChar)

この文字列内のすべてのoldCharをnewCharで置き換えた結果の新しい文字列を返します。

30

String replaceAll(String regex, String replacement

与えられた正規表現にマッチするこの文字列の各部分文字列を与えられた文字列に置き換えます。

31

String replaceFirst(String regex, String replacement)

指定された正規表現に一致するこの文字列の最初の部分文字列を指定された置換に置き換えます。

32

String[ split(String regex)]

この文字列を、指定された正規表現の一致で分割します。

33

String[ split(String regex, int limit)]

この文字列を、指定された正規表現の一致で分割します。

34

boolean startsWith(String prefix)

この文字列が指定されたプレフィックスで始まるかどうかをテストします。

35

boolean startsWith(String prefix, int toffset)

この文字列が、指定されたインデックスで始まる指定されたプレフィックスで始まるかどうかをテストします。

36

CharSequence subSequence(int beginIndex, int endIndex)

このシーケンスのサブシーケンスである新しい文字シーケンスを返します。

37

String substring(int beginIndex)

この文字列の部分文字列である新しい文字列を返します。

38

String substring(int beginIndex, int endIndex)

この文字列の部分文字列である新しい文字列を返します。

39

char[ toCharArray()]

この文字列を新しい文字配列に変換します。

40

String toLowerCase()

デフォルトのロケールの規則を使用して、この文字列のすべての文字を小文字に変換します。

41

String toLowerCase(Locale locale)

指定されたロケールのルールを使用して、この文字列のすべての文字を小文字に変換します。

42

String toString()

このオブジェクト(すでに文字列です!)自体が返されます。

43

String toUpperCase()

デフォルトのロケールの規則を使用して、このストリング内のすべての文字を大文字に変換します。

44

String toUpperCase(Locale locale)

指定されたロケールのルールを使用して、この文字列のすべての文字を大文字に変換します。

45

String trim()

文字列のコピーを返します。先頭と末尾の空白は省略されます。

46

static String valueOf(primitive data type x)

渡されたデータ型引数の文字列表現を返します。