Java で文字列を ArrayList に変換する
- 
          
            Java で charAt()およびadd()メソッドを使用して、文字列をArrayListに変換する
- 
          
            Java で toCharArray()メソッドを使用して文字列をArrayListに変換する
- 
          
            Java の split()メソッド
- 
          
            Java で split()メソッドを使用して文字列をArrayListに変換する
- 
          
            Java で split()メソッドを使用してArrayListを作成する
- 
          
            Java でユーザー文字列を ArrayListに変換する
- 
          
            Java で文字列配列を ArrayListに変換する
- 
          
            Java で文字列を ArrayListに変換する
 
このチュートリアルでは、Java での String から ArrayList への変換を紹介し、トピックを理解するためのサンプルコードをいくつかリストします。
文字列は文字のシーケンスとして定義され、ArrayList は順序付けられたデータのシーケンスを格納するために使用されます。文字列を ArrayList に変換するには、文字列から各文字を取得して ArrayList に追加する必要があります。
この記事では、これを行うためのさまざまな方法について説明します。
Java で charAt() および add() メソッドを使用して、文字列を ArrayList に変換する
簡単な解決策は、文字列の各文字を繰り返し処理し、その文字を ArrayList に追加することです。charAt() メソッドを使用して文字列の文字にアクセスし、add() メソッドを使用してそれらを ArrayList に追加できます。
このアプローチのコードを以下に示します。
import java.util.ArrayList;
public class SimpleTesting {
  public static void main(String[] args) {
    String s = "sample";
    ArrayList<Character> list = new ArrayList<Character>();
    for (int i = 0; i < s.length(); i++) {
      char currentCharacter = s.charAt(i); // getting the character at current index
      list.add(currentCharacter); // adding the character to the list
    }
    System.out.println("The String is: " + s);
    System.out.print("The ArrayList is: " + list);
  }
}
出力:
The String is: sample
The ArrayList is: [s, a, m, p, l, e]
より高度なことをしたい場合、このアプローチを使用することはできません。たとえば、文の単語だけを ArrayList に追加し、句読点を無視する場合は、さらに処理が必要になります。
Java で toCharArray() メソッドを使用して文字列を ArrayList に変換する
toCharArray() メソッドを文字列で使用して、文字列を文字配列に変換できます。次に、この文字配列を反復処理して、各文字を ArrayList に追加できます。
以下の例を参照してください。
import java.util.ArrayList;
public class Main {
  public static void main(String[] args) {
    String s = "sample";
    ArrayList<Character> list = new ArrayList<Character>();
    char[] characterArray = s.toCharArray();
    for (char c : characterArray) // iterating through the character array
      list.add(c);
    System.out.println("The String is: " + s);
    System.out.print("The ArrayList is: " + list);
  }
}
出力:
The String is: sample
The ArrayList is: [s, a, m, p, l, e]
これは、複雑なことをしたくない場合に使用できる簡単な方法です。ただし、前のセクションで説明したアプローチと同様に、文字列を ArrayList に変換する前に文字列に対して何らかの処理(句読点の削除など)を行う場合は、これを使用できません。
Java の split() メソッド
文字列 split() メソッドは、正規表現またはパターンをパラメータとして受け取り、一致するパターンに応じて文字列を文字列の配列に分割します。このメソッドは文字列配列を返します。
たとえば、文字列 string of words を split() メソッドに渡し、パターンが単一の空白(//s+ で示される)の場合、配列 ["string", "of", "words"]。
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {
    String s = "string of words";
    String[] strArr = s.split("\\s+"); // Splitting using whitespace
    System.out.println("The String is: " + s);
    System.out.print("The String Array after splitting is: " + Arrays.toString(strArr));
  }
}
出力:
The String is: string of words
The String Array after splitting is: [string, of, words]
Java で split() メソッドを使用して文字列を ArrayList に変換する
    
Arrays クラスの asList() メソッドを使用して、返された文字列の配列から ArrayList を作成できます。次のコードはこれを示しています。
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {
    String s = "string of words";
    String[] strArr = s.split("\\s+"); // Splitting using whitespace
    ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArr));
    System.out.println("The String is: " + s);
    System.out.print("The ArrayList is: " + list);
  }
}
出力:
The String is: string of words
The ArrayList is: [string, of, words]
Java で split() メソッドを使用して ArrayList を作成する
split() メソッドは、必要に応じて変更する必要があります。たとえば、文字列 sample の個々の文字の ArrayList を作成する場合、split() メソッドには別の正規表現が必要です。
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {
    String s = "sample";
    String[] strArr = s.split(""); // Splitting string into individual characters
    ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArr));
    System.out.println("The String is: " + s);
    System.out.print("The ArrayList is: " + list);
  }
}
出力:
The String is: sample
The ArrayList is: [s, a, m, p, l, e]
Java でユーザー文字列を ArrayList に変換する
カンマ区切りの従業員名を含む入力文字列をユーザーから取得し、各従業員の名前を含む ArrayList を作成する必要があるとします。
split() メソッドを使用して文字列を従業員名の配列に分割し、それを単に ArrayList に変換できます。ArrayList を作成する前にコンマを削除する必要があるため、split() メソッドはこのタスクに最適です。
以下の例を参照してください。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    String employeeNames;
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter employee names separated by comma");
    employeeNames = scanner.nextLine(); // taking user input
    scanner.close();
    String[] employeeNamesSplit = employeeNames.split(","); // Splitting names
    ArrayList<String> list = new ArrayList<String>(Arrays.asList(employeeNamesSplit));
    System.out.println("The String is: " + employeeNames);
    System.out.print("The ArrayList is: " + list);
  }
}
出力:
Enter employee names separated by comma
Justin, Jack, Jessica, Victor
The String is: Justin, Jack, Jessica, Victor
The ArrayList is: [Justin,  Jack,  Jessica,  Victor]
Java で文字列配列を ArrayList に変換する
    
配列はデータを順序付けて格納するのに最適ですが、サイズが限られているため、いくつかの重要な操作が制限される可能性があります。asList() メソッドを使用すると、文字列配列を ArrayList に簡単に変換できます。配列のすべての項目をリストにコピーするだけです。
次のコードはこれを示しています。
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {
    String[] strArr = {"Hello", "Hola", "Ola"};
    ArrayList<String> strList = new ArrayList<String>(Arrays.asList(strArr));
    System.out.println("The String Array is: " + Arrays.toString(strArr));
    System.out.println("The Array List is: " + strList);
  }
}
出力:
The String Array is: [Hello, Hola, Ola]
The Array List is: [Hello, Hola, Ola]
Java で文字列を ArrayList に変換する
文字列は一般的にさまざまな目的で使用されますが、不変であり、変更を適用することはできません。一方、ArrayList はより多くの柔軟性を提供します。文字列の個々の文字から ArrayList を作成できます。または、より複雑な処理(コンマ区切りの文字列から名前の ArrayList を作成するなど)が必要な場合は、split() メソッドを使用することができます。
全体として、split() メソッドは、文字列を ArrayList に変換する最も簡単で最も好ましい方法です。
関連記事 - Java String
- Java で 16 進文字列のバイト配列を変換する方法
- Java で文字列から部分文字列を削除する方法
- Java で文字列から文字列配列への変換を実行する方法
- Java 文字列をバイトに変換する方法
- Java でランダムな文字列を生成する
- Java のスワップメソッド
関連記事 - Java ArrayList
- Java で ArrayList のオブジェクトを日付でソートする方法
- Java ArrayList で一意の値を見つける
- Java の Vector と ArrayList
- Java のリストと Arraylist の違い
- Java で ArrayLists を比較する
- Java で ArrayList を int 型配列に変換する