如何将String(“ dog”)拆分为Arraylist ['d','o','g']?

时间:2019-12-26 10:58:07

标签: java string arraylist converters

我有一个输入 String ,我希望其字母位于 ArrayList 中。从"abc"['a', 'b', 'c']

我尝试了split()方法,但错误是Cannot resolve method 'asList(java.lang.String[])'

userInput = scanner.next();
inputLetters = new ArrayList<Character>(Arrays.<Character>asList(userInput.split("")));

我有Java 13,所以应该可以使用

4 个答案:

答案 0 :(得分:5)

String[]传递给Arrays.asList()时,会得到List<String>,而不是List<Character>

您可以将List<String>转换为List<Character>,如下所示:

List<Character> inputLetters = Arrays.asList(userInput.split(""))
                                     .stream()
                                     .map(s -> s.charAt(0))
                                     .collect(Collectors.toList());

获取List<Character>的另一种方法:

List<Character> inputLetters = userInput.chars()
                                        .mapToObj(i -> (char)i)
                                        .collect(Collectors.toList());

当然,如果您不介意使用char[]而不是List<Character>,只需使用userInput.toCharArray()

答案 1 :(得分:2)

您可以使用toCharArray。这是示例代码

String userInput = "abc";

        for (char c : userInput.toCharArray()) {
            System.out.println(c);
        }

答案 2 :(得分:2)

此错误是由于userInput.split("")生成["a","b","c"](它是一个字符串数组)而不是预期的['a','b','c'](是一个字符数组)引起的。

一个简单的解决方法是:

  1. 将字符串拆分为char数组
  2. 创建一个空的arrayList
  3. 遍历char数组并将其添加到arrayList

String userInput = "abc";
char[] inputCharArray = userInput.toCharArray();
List<Character> userList = new ArrayList<>();
for(char c: inputCharArray)
    userList.add(c);

答案 3 :(得分:0)

此代码应该有效:

public static ArrayList<Character> convertStringToList(String s){
    ArrayList<Character> list = new ArrayList<>();
    char[] chars = s.toCharArray();
    for (char c : chars){
        list.add(c);
    }
    return list;
}

代码只是将String转换为char []并遍历数组,从而形成列表。