多くの場合、初心者プログラマーが最初に知るデータ構造は配列です。それは、配列の学習が非常に簡単だからです。1 次元配列は、データを保存できる固定数のセルで構成されるシーケンスです。Java 言語の場合、配列に格納できるデータは 1 種類のみです。言い換えれば、Java の配列は同種です。配列セルには、任意のタイプのオブジェクトを含めることができます。プリミティブまたはオブジェクトなど、任意のタイプのオブジェクトを配列に入れることができます。今日は Java 言語の文字列配列、つまり各要素が文字列である配列について見ていきます。Java String Array を宣言する方法とそれを操作する方法を理解します。
文字列配列を宣言して初期化する方法
Java では、さまざまな方法でString配列を宣言および初期化できます。たとえば、以下のコードのようになります。String[] myArray = {"value1", "value2", "value3"};
ここでは、まずString[]型の 変数myArrayを宣言します。その後、中括弧で囲まれた 3 つの文字列値で配列を初期化します。あるいは、文字列配列の宣言と初期化を別の行で行うこともできます。
String[] myArray; // String array declaration
myArray = new String[] {"value1", "value2", "value3"}; // initialize the array
ここでは最初のコード スニペットと同じ結果が得られますが、宣言と初期化が 2 つのステップに分かれています。また、以下のように、サイズのみを指定して配列を初期化することもできます。
String[] myArray = new String[5];
ここでは、文字列配列 を作成し、文字列配列のサイズを指定しますが、初期値は指定しません。その後、ループを使用するか、値を個別に指定して、配列に値を割り当てることができます。どのような場合でも、変数を宣言するときに 配列の型 (この場合はString ) を指定する必要があることに注意してください。
String配列を反復処理する方法
Java では、ループを使用してString配列を反復処理できます。for または foreach 構築である可能性があります。両方のタイプのループを使用する例を見てみましょう。public class IterateStringArrayExample {
public static void main(String[] args) {
String[] stringArray = {"violin", "viola", "cello", "double bass"};
// Using a for loop
for (int i = 0; i < stringArray.length; i++) {
String s = stringArray[i];
System.out.print(s + " ");
}
System.out.println();
// Using a foreach loop
for (String s : stringArray) {
System.out.print(s + " ");
}
System.out.println();
}
}
ここではまず、4 つの要素 (文字列楽器) を含む stringArray という名前の文字列配列を作成します。次に、両方のループで文字列配列の各要素を反復処理し、それをコンソールに出力します。foreach ループは配列を反復処理するより簡潔な方法ですが、各要素のインデックスにアクセスする必要がある場合は for ループが便利です。このプログラムの出力は次のようになります。
ヴァイオリン ヴィオラ チェロ コントラバス ヴァイオリン ヴィオラ チェロ コントラバス
新しい要素を配列に追加する方法
Java では、単に新しい要素を配列に追加することはできません。ただし、Java には特別なトリックがあります。文字列の配列があり、配列の末尾に新しい文字列を追加する必要がある場合は、Arrays.copyOfメソッドを使用します。このメソッドは、追加の要素を 1 つ含む新しい配列を作成し、その新しい要素を新しい配列の末尾に追加します。以下に例を示します。//add string Array and a new element
String[] oldArray = {"violin", "viola", "cello"};
String newElement = "double bass";
String[] newArray = Arrays.copyOf(oldArray, oldArray.length + 1);
newArray[newArray.length - 1] = newElement;
ここで、Arrays.copyOfメソッドは、oldArray よりも 1 大きい長さのnewArrayという名前の新しい配列を作成します。このメソッドは、newElement をnewArrayの最後の要素に割り当てることで、newArrayの末尾に追加します。Java の配列は固定長であるため、配列の作成後に要素を追加したり、配列から要素を削除したりすることはできません。コレクションに対して要素を動的に追加または削除するには、別のデータ構造を使用することをお勧めします。たとえば、ListまたはMap です。
文字列配列内の要素を並べ替える方法
確かに、優れたプログラミング演習に興味がある場合は、ソート手順のソート アルゴリズムを作成できます。ただし、実際の作業タスクでは、Arrays.sort()メソッドを使用する方がはるかに簡単です。以下に例を示します。import java.util.Arrays;
public class SortStringArrayExample {
public static void main(String[] args) {
String[] stringArray = {"violin", "viola", "cello", "double bass"};
// Sorting the array
Arrays.sort(stringArray);
// Printing the sorted array
for (String s : stringArray) {
System.out.print(s + " ");
}
}
}
ここではまず、 4 つの要素を含む stringArray という名前のString配列を作成します。次に、 Arrays.sort()メソッドを呼び出して、配列内の要素を昇順に並べ替えます。最後に、 for-eachループを使用してソートされた配列を反復処理し、各要素をコンソールに出力します。このプログラムの出力は次のとおりです。
チェロ コントラバス ヴィオラ ヴァイオリン
ご覧のとおり、このメソッドはstringArray内の要素をアルファベット順にソートしました。
文字列配列内の特定の文字列を検索する方法
Java のString配列で必要なStringを検索するには、ループを使用して各配列要素を反復処理し、それを検索しているStringと比較します。プログラム例を次に示します。public class SearchString {
public static void main(String[] args) {
String[] stringArray = {"violin", "viola", "cello", "double bass"};
String searchString1 = "cello";
String searchString2 = "piano";
search(stringArray, searchString1);
search(stringArray, searchString2);
}
public static boolean search (String[] myArray, String myString){
boolean found = false;
// Loop through the array to search for the string
for (String s : myArray) {
if (s.equals(myString)) {
found = true;
break;
}
}
// Print the result
if (found) {
System.out.println(myString + " found in the array.");
} else {
System.out.println(myString + " not found in the array.");
} return found;
}
}
ここでは、配列と検索する文字列の 2 つの引数を持つメソッドを作成しています。String が見つかったかどうかを追跡するために、ブール値 'found' を作成します。メソッドが返すのは検出された値です。次に、for-eachループを使用して、各配列要素を反復処理します。ループ内でequals()メソッドを使用して、現在の要素と検索文字列を比較します。メソッドで一致が見つかった場合は、それを true に設定し、break ステートメントを使用してループを早期に終了します。最後に、見つかった値が true か false かに応じて結果を出力します。mainメソッドでは、配列内にあるStringとそうでない Stringを使用して、search メソッドを 2 回呼び出します。このプログラムの出力は次のとおりです。
配列内でチェロが見つかりました。ピアノが配列内に見つかりません。
文字列配列を文字列に変換する方法
Java ではString.join()メソッドを使用してString配列をStringに変換できます。このメソッドは、指定された区切り文字で連結された文字列を返します。区切り文字はString join()メソッドの要素ごとにコピーされます。 以下に例を示します。String[] myArray = {"value1", "value2", "value3"};
String joinedString = String.join(", ", myArray);
System.out.println(joinedString);
出力は次のとおりです。
値1、値2、値3
まず、3 つの文字列値を含む文字列配列myArrayを宣言します。次に、String.join()メソッドを使用して、すべての配列要素を 1 つの文字列に結合します。String.join()の最初の引数は、配列の各要素間に使用する区切り文字です。区切り文字として「,」(カンマとスペースが続く)を使用しました。2 番目の引数は、結合する配列です。最後に、結果の文字列を変数joinStringに代入し、コンソールに出力します。
GO TO FULL VERSION