HOWTO · Java

Java 中将字符串转换为 ArrayList

这篇文章是关于将 String 转换为 ArrayList Java。

本页内容

本教程介绍了 Java 中 StringArrayList 的转换,并列出了一些示例代码来理解该主题。

一个字符串被定义为一个字符序列,一个 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() 方法将字符串拆分为员工姓名数组,然后我们可以简单地将其转换为 ArrayListsplit() 方法非常适合此任务,因为我们需要在创建 ArrayList 之前删除逗号。

请参考下面的示例。

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 的最简单也是最受欢迎的方法。