java string array tutorial with code examples
Java文字列配列に関するこのチュートリアルでは、Javaで文字列配列を宣言、初期化、作成する方法と、文字列配列で実行できる変換について説明します。
配列はJavaの重要なデータ構造であり、プリミティブからユーザー定義までさまざまなタイプのデータを格納するために使用されます。配列の基本と、配列で実行できるその他の主要な操作については、すでに説明しました。
以前のチュートリアルの1つで、配列が保持できるさまざまなタイプのデータについて説明しました。
配列が保持できるデータ型の1つは文字列です。この場合、配列は文字列配列と呼ばれます。
学習内容:
- Javaの文字列配列とは何ですか?
- 結論
Javaの文字列配列とは何ですか?
文字列を要素として持つ配列を持つことができます。したがって、文字列配列は、固定数の文字列または文字列値を保持する配列として定義できます。文字列配列は、Javaで最も一般的に使用される構造の1つです。覚えているかと思いますが、Javaの「main」関数の引数でさえ文字列配列です。
文字列配列はオブジェクトの配列です。これは、各要素が文字列であり、Javaでは文字列がオブジェクトであることを知っているためです。並べ替え、要素の追加、結合、分割、検索など、文字列配列に対するすべての操作を実行できます。
このチュートリアルでは、Javaの文字列配列について、文字列配列で実行できるさまざまな操作と変換とともに詳しく説明します。
文字列配列の宣言
文字列配列は、サイズありまたはサイズ指定なしの2つの方法で宣言できます。
以下に、文字列配列を宣言する2つの方法を示します。
String() myarray ; //String array declaration without size String() myarray = new String(5);//String array declaration with size最初の宣言では、文字列配列は、サイズのない通常の変数と同じように宣言されます。この配列を使用する前に、newでインスタンス化する必要があることに注意してください。
2番目の宣言では、文字列配列が宣言され、newを使用してインスタンス化されます。ここでは、5つの要素を持つ文字列配列「myarray」が宣言されています。この配列の要素を直接出力すると、配列が初期化されていないため、すべてのnull値が表示されます。
文字列配列宣言を表示するプログラムを実装しましょう。
public class Main { public static void main(String() args) { String() myarray; //declaration of string array without size String() strArray = new String(5); //declaration with size //System.out.println(myarray(0)); //variable myarray might not have been initialized //display elements of second array System.out.print(strArray(0) + ' ' +strArray(1)+ ' ' + strArray(2)+ ' ' + strArray(3)+ ' ' +strArray(4)); } } 出力:

上記のプログラムは、文字列配列を宣言する2つの方法を示しています。前述のように、最初の宣言にはサイズとインスタンス化がありません。したがって、この配列を使用する前に、newを使用してインスタンス化する必要があります。上記のプログラムでは、配列myarrayがインスタンス化なしで使用されているため、コンパイラエラー(コメントステートメント)が発生します。
2番目の宣言はサイズです。したがって、このString配列の個々の要素が出力されると、配列が初期化されていないため、すべての要素の値がnullになります。
文字列配列の初期化
文字列配列が宣言されたら、いくつかの値で初期化する必要があります。それ以外の場合、String要素に割り当てられるデフォルト値はnullです。したがって、宣言後、配列の初期化に進みます。
文字列配列は、宣言とともにインラインで初期化することも、宣言後に初期化することもできます。
まず、String配列をインラインで初期化する方法を見てみましょう。
String() numarray = {“one”, “two”, “three”}; String() strArray = new String() {“one”, “two”, “three”, “four”}; 上記の文字列配列では、初期化はインライン初期化です。文字列配列は、宣言されると同時に初期化されます。
次のように文字列配列を初期化することもできます。
String() strArray = new String(3); strArray(0) = “one”; strArray(1) = “two”; strArray(2) = “three”; ここでは、文字列配列が最初に宣言されています。次に、次の行で、個々の要素に値が割り当てられます。文字列配列が初期化されると、プログラムで通常どおりに使用できます。
文字列配列の長さ/サイズ
配列のサイズを取得するために、配列には「length」という名前のプロパティがあることをご存知でしょう。これは文字列配列にも当てはまります。
配列(任意の配列)のサイズまたは長さは、配列に存在する要素の数を示します。したがって、myarrayという名前の配列の長さを取得するには、次の式を指定できます。
int len = myarray.length;文字列配列の長さを出力するプログラムを実装しましょう。
public class Main { public static void main(String() args) { //declare and initialize a string array String() numArray = {'one','two', 'three', 'four', 'five'}; int len = numArray.length; //get the length of array //display the length System.out.println('Length of numArray{'one','two', 'three', 'four', 'five'}:' + len); } } 出力:

lengthプロパティは、文字列配列を反復処理して処理したり、単に印刷したりする必要がある場合に役立ちます。
文字列配列の反復と印刷
これまで、文字列配列の宣言、初期化、および長さプロパティについて説明してきました。次に、配列の各要素をトラバースし、文字列配列要素を出力します。
すべての配列と同様に、forループと拡張forループを使用して文字列配列を反復処理できます。
以下は 配列をトラバース/反復してその要素を出力するための拡張forループの使用法を示すJava実装。
public class Main { public static void main(String() args) { //declare and initialize a string array String() numArray = {'one','two', 'three', 'four', 'five'}; System.out.println('String Array elements displayed using for loop:'); // for loop to iterate over the string array for(int i=0; i 出力:

上記のプログラムでは、文字列配列のトラバースにforループと拡張forループの両方が使用されています。拡張forループの場合、制限または終了条件を指定する必要がないことに注意してください。 「for」ループの場合、開始条件と終了条件を指定する必要があります。
文字列配列に追加
他のデータ型と同様に、文字列配列の要素を追加することもできます。このセクションでは、文字列配列に要素を追加するためのさまざまな方法を見てみましょう。
事前割り当ての使用
この方法では、より大きなサイズの配列を作成します。 例えば、 配列に5つの要素を格納する必要がある場合は、サイズ10の配列を作成します。これにより、配列の最後に新しい要素を簡単に追加できます。
事前に割り当てられた配列への要素の追加を実装する例を以下に示します。
import java.util.*; public class Main { public static void main(String() args) { String() colorsArray = new String(5); // initial array values colorsArray(0) = 'Red'; colorsArray(1) = 'Green'; colorsArray(2) = 'Blue'; System.out.println('Original Array:' + Arrays.toString(colorsArray)); intnumberOfItems = 3; // try to add new value at the end of the array String newItem = 'Yellow'; colorsArray(numberOfItems++) = newItem; System.out.println('Array after adding one element:' + Arrays.toString(colorsArray)); } } 出力:

配列内の占有されていないスペースがNullに設定されていることに注意してください。この方法の欠点は、占有されないままになる可能性のある大きなアレイを作成する可能性があるため、スペースが無駄になることです。
新しい配列の使用
この方法では、元の配列よりも大きいサイズの新しい配列を作成して、新しい要素に対応できるようにします。新しい配列を作成した後、元の配列のすべての要素がこの配列にコピーされ、新しい要素が配列の最後に追加されます。
新しい配列を使用して要素を追加するプログラムの例を以下に示します。
Windows10に最適な仮想マシンソフトウェア
importjava.util.*; public class Main { public static void main(String() args) { //original array String() colorsArray = {'Red', 'Green', 'Blue' }; System.out.println('Original Array: ' + Arrays.toString(colorsArray)); //length of original array int orig_length = colorsArray.length; //new element to be added to string array String newElement = 'Orange'; //define new array with length more than the original array String() newArray = new String( orig_length + 1 ); //add all elements of original array to new array for (int i=0; i 出力:

このアプローチでは、プログラムで2つの配列を維持する必要があるため、明らかにメモリとパフォーマンスのオーバーヘッドが発生します。
ArrayListの使用
ArrayListを中間データ構造として使用して、要素をString配列に追加することもできます。
以下に例を示します。
import java.io.*; import java.lang.*; import java.util.*; class Main { public static void main(String() args) { // define initial array String numArray() = { 'one', 'two', 'three', 'four', 'five', 'six' }; // print the original array System.out.println('Initial Array:
' + Arrays.toString(numArray)); // new element to be added String newElement = 'seven'; // convert the array to arrayList ListnumList = new ArrayList( Arrays.asList(numArray)); // Add the new element to the arrayList numList.add(newElement); // Convert the Arraylist back to array numArray = numList.toArray(numArray); // print the changed array System.out.println('
Array with value ' + newElement + ' added:
' + Arrays.toString(numArray)); } } 出力:

上記のプログラムに示されているように、文字列配列は最初にasListメソッドを使用してArrayListに変換されます。次に、addメソッドを使用して新しい要素がArrayListに追加されます。要素が追加されると、ArrayListは配列に変換されます。
これは、前に説明したアプローチと比較すると、より効率的なアプローチです。
文字列配列に含まれるもの
特定の文字列が文字列配列に存在するかどうかを知りたい場合は、「contains」メソッドを使用できます。このため、このメソッドはArrayListに属しているため、最初に文字列配列をArrayListに変換する必要があります。
次の実装は、「contains」メソッドの使用法を示しています。
import java.io.*; import java.lang.*; import java.util.*; class Main { public static void main(String() args) { String() words = new String(){'C++', 'Java', 'C', 'Python'}; // Convert String Array to List Listwordslist = Arrays.asList(words); String tochk = 'Java'; if(wordslist.contains(tochk)){ System.out.println('The word ' + tochk + ' present in string array'); } else System.out.println('The word ' + tochk + ' not present in string array' ); } } 出力:

まず、指定された文字列配列に文字列「Java」が含まれているかどうかを確認しました。存在するため、適切なメッセージが表示されます。次に、チェックする文字列を「C#」に変更します。この場合、「contains」メソッドはfalseを返します。

containsメソッドの場合、引数として渡される文字列では常に大文字と小文字が区別されることに注意してください。したがって、上記の実装では、containsメソッドの引数として「java」を指定すると、falseが返されます。
文字列配列を並べ替える
「配列での並べ替え」に関する詳細なトピックはすでに見てきました。文字列配列を並べ替える方法は、他の配列と同じです。
以下に示すのは、配列内の文字列をアルファベット順に並べ替える「Arrays」クラスの「sort」メソッドの実装です。
import java.util.*; class Main { public static void main(String() args) { String() colors = {'red','green','blue','white','orange'}; System.out.println('Original array: '+Arrays.toString(colors)); Arrays.sort(colors); System.out.println('Sorted array: '+Arrays.toString(colors)); } } 出力:

上記のプログラムの出力には、元の入力配列と、アルファベット順にソートされた出力配列が表示されます。
文字列配列で文字列を検索する
ここで説明した「contains」メソッドとは別に、文字列配列の各要素をトラバースすることで、文字列配列内の特定の文字列を検索することもできます。ここでは、文字列配列の各要素を検索対象の文字列と比較します。
文字列の最初の出現が検出され、配列内の文字列の対応するインデックスが返されると、検索は終了します。文字列配列の最後まで文字列が見つからない場合は、適切なメッセージが表示されます。
この実装は、次のJavaプログラムに示されています。
import java.util.*; class Main { public static void main(String() args) { String() strArray = { 'Book', 'Pencil', 'Eraser', 'Color', 'Pen' }; boolean found = false; int index = 0; String searchStr = 'Pen'; for (int i = 0; i 出力:

上記のプログラムは、指定された文字列配列で文字列「Pen」を検索し、見つかった場合は対応するインデックスを返します。
文字列配列を文字列に変換する
文字列配列を文字列に変換する方法について説明しましょう。これを行うための3つの異なる方法について、それぞれの例を使用して説明します。
toStringメソッドの使用
最初のメソッドは、「Arrays」クラスの「toString」メソッドを使用することです。文字列配列を引数として取り、配列の文字列表現を返します。
次のJavaプログラムは、toStringメソッドの使用法を示しています。
import java.util.*; public class Main { public static void main(String args()) { //declare a string String() str_Array = {'This','is','Software','Testing','Help'}; System.out.println('String array converted to string:' + Arrays.toString(str_Array)); } } 出力:
Windows7に最適なマルウェア除去

上記のプログラムは、「toString」メソッドを使用して、指定された文字列配列の文字列表現を表示します。
StringBuilder.Append()メソッドの使用
文字列配列を文字列に変換する次のアプローチは、「StringBuilder」クラスを使用することです。 StringBuilderタイプのオブジェクトを作成し、StringBuilderの「Append」メソッドを使用して、文字列配列要素をStringBuilderオブジェクトに1つずつ追加する必要があります。
すべての配列要素がStringBuilderオブジェクトに追加されたら、このオブジェクトで「toString」メソッドを使用して、最終的に文字列表現を取得できます。
import java.util.*; public class Main { public static void main(String args()) { //string array String() str_Array = {'This','is','Software','Testing','Help'}; System.out.print('Original string array:'); //print string array for(String val:str_Array) System.out.print(val + ' '); System.out.println('
'); //construct a stringbuilder object from given string array StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i 出力:

上記のプログラムは、StringBuilderクラスを使用した文字列配列から文字列への変換を示しています。
結合操作の使用
Stringクラスの「結合」操作を使用して、文字列配列を文字列表現に変更することもできます。
「結合」操作は2つの引数を取ります。最初の引数は文字列の区切り文字または区切り文字で、2番目の引数は文字列配列です。次に、結合操作は、指定された区切り文字(最初の引数)で区切られた文字列を返します。
結合操作を使用して文字列配列から文字列を取得する方法を示す次のプログラムを確認してください。
import java.util.*; public class Main { public static void main(String args()) { //string array String() str_Array = {'This','is','Software','Testing','Help'}; System.out.println('Original string array:'); //print the string array for(String val:str_Array) System.out.print(val + ' '); System.out.println('
'); //form a string from string array using join operation String joinedString = String.join(' ', str_Array); //print the string System.out.println('String obtained from string array:' + joinedString); } } 出力:

文字列を文字列配列に変換する
文字列を文字列配列に変換する逆の操作を見てみましょう。この変換を行うには2つの方法があります。
分割操作の使用
文字列を文字列配列に変換する最初の方法は、Stringクラスの分割操作を使用することです。指定した区切り文字(コンマ、スペースなど)で文字列を分割し、新しく生成された文字列配列を返すことができます。
次の実装は、分割操作の使用法を示しています。
public class Main { public static void main(String args()) { //declare a string String myStr = 'This is Software Testing Help'; //use split function to split the string into a string array String() str_Array = myStr.split(' ', 5); System.out.println('String Array after splitting the string '' + myStr + '':'); //display the string array for (int i=0;i 出力:

上記のプログラムは、split関数を使用してスペースに基づいて文字列を分割し、5要素の文字列配列を返します。
正規表現パターンの使用
文字列を文字列配列に変換する次の方法は、正規表現を使用することです。パターンを指定してから、指定したパターンに従って指定した文字列を分割できます。
使用できます 正規表現パターンクラス java.utilパッケージに属しています。
以下に示すのは、パターンを使用して文字列を文字列配列に変換する例です。
import java.util.Arrays; import java.util.regex.Pattern; public class Main { public static void main(String args()) { //declare a string String myStr = 'This is Java series tutorial'; System.out.println('The original string:' + myStr + '
'); String() str_Array = null; //split string on space(' ') Pattern pattern = Pattern.compile(' '); //use pattern split on string to get string array str_Array = pattern.split(myStr ); //print the string array System.out.println('String Array after splitting the string using regex pattern:'); for (int i=0;i 出力:

上記のプログラムでは、指定したパターンはスペース文字です。したがって、文字列はスペースに分割され、文字列配列を返します。すでに推測できるように、正規表現とパターンを使用する方がはるかに効率的なプログラミング方法です。
文字列配列をリストに変換
文字列配列をリストに変換することもできます。これを行うためのいくつかの方法をリストしました
カスタムコードの使用
最初の方法は、カスタムコードを使用して文字列配列をリストに変換することです。このメソッドでは、文字列配列がトラバースされ、リストのaddメソッドを使用して各要素がリストに追加されます。
次のプログラムは、この実装を示しています。
import java.util.*; public class Main { public static void main( String() args ) { //a string array String() numArray = { 'One', 'Two', 'Three', 'Four', 'Five' }; System.out.println('The string array:' + Arrays.toString(numArray)); //define arraylist with size same as string array Liststr_ArrayList = new ArrayList(numArray.length); //add string array elements to arraylist for (String str:numArray) { str_ArrayList.add(str ); } System.out.println('
Arraylist created from string array:'); //print the arraylist for (String str : str_ArrayList) { System.out.print(str + ' ' ); } } } 出力:

上記のプログラムに示すように、最初にリストが作成されます。次に、for-eachループを使用して、文字列配列の各要素がリストに追加されます。最後に、リストが印刷されます。
Collections.addAll()メソッドの使用
文字列配列をリストに変換する2番目の方法は、Collectionsフレームワークの「addAll」メソッドを使用することです。メソッドaddAll()は、ArrayListと文字列配列を入力として受け取り、文字列配列の内容をArrayListにコピーします。
次のプログラムは、文字列配列をリストに変換するためのaddAllメソッドの使用法を示しています。
import java.util.*; public class Main { public static void main( String() args ) { //a string array String() vehiclesArray = { 'moped', 'car', 'SUV', 'bicycle', 'bus' }; System.out.println('The string array:' + Arrays.toString(vehiclesArray)); //define arraylist with size same as string array List str_ArrayList = new ArrayList(vehiclesArray.length); //add string array elements to arraylist using Collections.addAll method Collections.addAll(str_ArrayList, vehiclesArray ); System.out.println('
Arraylist created from string array:'); //print the arraylist for (String str : str_ArrayList) { System.out.print(str + ' ' ); } } } 出力:

上記のプログラムでは、Collections.addAllメソッドを使用して、指定された文字列配列をリストに変換しました。
Arrays.asList()の使用
最後に、Arrayクラスは、指定された文字列配列をリストに直接変換するメソッド「asList()」を提供します。
Linuxで2つのファイルを比較し、違いを見つけます
以下に示すのは、asListを使用するJavaプログラムです。
import java.util.*; public class Main { public static void main( String() args ) { //a string array String() vehiclesArray = { 'moped', 'car', 'SUV', 'bicycle', 'bus' }; System.out.println('The string array:' + Arrays.toString(vehiclesArray)); //Convert array to list using asList method List str_ArrayList = Arrays.asList(vehiclesArray ); System.out.println('
Arraylist created from string array:'); //print the arraylist for (String str : str_ArrayList) { System.out.print(str + ' ' ); } } } 出力:

上に示したように、ArraysクラスのasListメソッドは、配列をリストに変換し、このリストを返します。
リストを文字列配列に変換する
前のセクションでは、文字列配列をリストに変換するいくつかの方法を見ました。それでは、リストを文字列配列に変換する方法を見てみましょう。
ArraList.get()の使用
最初のメソッドは、リストの個々の要素を返すArrayListのgetメソッドです。 ArrayListをトラバースして、配列の場所に割り当てることができる要素を返すgetメソッドを呼び出すことができます。
次のプログラムは、この実装を示しています。
import java.util.*; public class Main { public static void main( String() args ) { //ArrayList initialization ArrayList str_ArrayList= new ArrayList(); //add items to the arraylist str_ArrayList.add('str1'); str_ArrayList.add('str2'); str_ArrayList.add('str3'); str_ArrayList.add('str4'); str_ArrayList.add('str5'); //ArrayList to Array Conversion String str_Array() = new String(str_ArrayList.size()); for(int j =0;j 出力:

上記のプログラムは、getメソッドを使用したArrayListから文字列配列への変換を示しています。
ArrayList.toArray()メソッドの使用
ArrayListは、ArrayListの配列表現を返すメソッド「toArray()」を提供します。したがって、このメソッドを使用して、文字列ArrayListから文字列配列を取得できます。
toArrayメソッドを使用する次のプログラムを確認してください。
import java.util.*; public class Main { public static void main( String() args ) { //ArrayList initialization ArrayList str_ArrayList= new ArrayList(); //add items to the arraylist str_ArrayList.add('Mumbai'); str_ArrayList.add('Delhi'); str_ArrayList.add('Pune'); str_ArrayList.add('Chennai'); str_ArrayList.add('Kolkata'); //ArrayList to Array Conversion using toArray method String str_Array()=str_ArrayList.toArray(new String(str_ArrayList.size())); //print array elements System.out.println('String array obtained from string arraylist:'); for(String ary: str_Array){ System.out.print(ary + ' '); } } } 出力:

まず、要素がArrayListに追加され、次に「toArray」メソッドを使用して、リストが文字列配列に変換されます。
文字列配列をInt配列に変換する
場合によっては、数値を操作する必要があります。この場合、文字列配列に数値の内容がある場合は、この文字列配列をint配列に変換することをお勧めします。このためには、各配列要素で関数「parseInt」を使用して整数を抽出する必要があります。
次のプログラムは、文字列配列からint配列への変換を示しています。
import java.util.*; public class Main { public static void main( String() args ) { //string arrya declaration String () str_Array = {'10', '20','30', '40','50'}; //print the string array System.out.println('Original String Array:'); for(String val:str_Array) System.out.print(val + ' '); System.out.println('
The integer array obtained from string array:'); //declare an int array int () int_Array = new int (str_Array.length); //assign string array values to int array for(int i=0; i 出力:

上記のプログラムには、数値を文字列として含む文字列配列があります。このプログラムでは、各文字列配列要素が「parseInt」関数を使用して解析され、int型の配列に割り当てられます。
この変換は、数値要素を持つ文字列配列でのみ機能することに注意してください。文字列配列の要素のいずれかが数値以外の場合、コンパイラは「java.lang.NumberFormatException」をスローします。
よくある質問
Q#1)Javaの配列と文字列の違いは何ですか?
回答: 配列は要素の連続したシーケンスです。文字列は、ヌル文字で終了する一連の文字です。文字列は不変です。つまり、一度定義すると変更できません。文字列に変更が加えられると、新しい文字列になります。
配列は変更可能です。配列には、文字列を含むさまざまなデータ型の要素を含めることができます。
Q#2)Javaで配列をどのように宣言しますか?
回答: Javaで配列を宣言する一般的な方法は次のとおりです。
タイプarray_name ();
または
type () array_name;
したがって、myarrayがint型要素を持つ配列変数である場合、この配列は次のように宣言できます。
int myarray ();
または
int () myarray;
Q#3)文字列の配列を作成するにはどうすればよいですか?
回答: strArrayが文字列配列の場合、その宣言は次のようになります。
String () strArray;
または
文字列strArray ();
Q#4)String () argsとは何ですか?
回答: JavaのString () argsは、Javaプログラムに渡すことができるコマンドライン引数を含む文字列の配列です。
Q#5)配列は文字列を保持できますか?
回答: はい。配列がchar、int、floatなどの他のデータ型を保持できるのと同様に、配列も文字列を保持できます。この場合、文字列は文字のシーケンスまたは配列として表示できるため、配列は「文字の配列」の配列になります。
結論
このチュートリアルでは、Javaの文字列配列の詳細を見てきました。 Javaでの文字列配列の宣言、定義、初期化など、文字列配列に関連するすべての主要な概念について説明しました。
また、検索、並べ替え、結合など、文字列配列のリスト、文字列、int配列への変換など、いくつかの操作についても説明しました。これで、文字列配列についての説明を完了します。
以降のチュートリアルでは、Javaの多次元配列について説明します。
推奨読書


















