Java で文字列を ArrayList に変換する

Mohammad Irfan 2023年10月12日
  1. Java で charAt() および add() メソッドを使用して、文字列を ArrayList に変換する
  2. Java で toCharArray() メソッドを使用して文字列を ArrayList に変換する
  3. Java の split() メソッド
  4. Java で split() メソッドを使用して文字列を ArrayList に変換する
  5. Java で split() メソッドを使用して ArrayList を作成する
  6. Java でユーザー文字列を ArrayList に変換する
  7. Java で文字列配列を ArrayList に変換する
  8. 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 wordssplit() メソッドに渡し、パターンが単一の空白(//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 ArrayList

関連記事 - Java Array