字符串转换为数组列表 在Java中(convert string to arraylist <

2019-07-21 07:13发布

如何将字符串转换没有分离到ArrayList<Character>

我的字符串是这样的:

String str = "abcd..."

我知道这样做的一种方式是将所述字符串char[]第一,然后将转换char []ArrayList <Character>

有没有更好的方式来做到这一点? 像直接转换? 考虑到时间和性能,因为我有一个很大的数据库编码。

Answer 1:

您需要添加像这样。

String str = "abcd...";
ArrayList<Character> chars = new ArrayList<Character>();
for (char c : str.toCharArray()) {
  chars.add(c);
}


Answer 2:

使用lambda表达式来做到这一点。

String big_data = "big-data";
ArrayList<Character> chars
        = new ArrayList<>(
                 big_data.chars()
                .mapToObj(e -> (char) e)
                .collect(
                        Collectors.toList()
                )
        );    


Answer 3:

如果DN不再需要它在创建后修改名单,可能是更好的方法是将包串入类实现List<Character>这样的界面:

import java.util.AbstractList;
import java.util.List;

public class StringCharacterList extends AbstractList <Character>
{
    private final String string;

    public StringCharacterList (String string)
    {
        this.string = string;
    }

    @Override
    public Character get (int index)
    {
        return Character.valueOf (string.charAt (index));
    }

    @Override
    public int size ()
    {
        return string.length ();
    }
}

然后使用这个类是这样的:

List <Character> l = new StringCharacterList ("Hello, World!");
System.out.println (l);


Answer 4:

很抱歉的Retrobump,但现在这是真的很容易!

您可以在Java 8中使用流很容易做到这一点! 试试这个:

String string = "testingString";
List<Character> list = string.chars().mapToObj((i) -> Character.valueOf((char)i)).collect(Collectors.toList());
System.out.println(list);

您需要使用mapToObj因为chars()返回一个IntStream



Answer 5:

public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "abcd...";
        ArrayList<Character> a=new ArrayList<Character>();
        for(int i=0;i<str.length();i++)
        {
            a.add(str.charAt(i));

        }
        System.out.println(a);
    }


Answer 6:

你可以做这样的:

import java.util.ArrayList;

public class YourClass{

    public static void main(String [] args){

        ArrayList<Character> char = new ArrayList<Character>();
        String str = "abcd...";

        for (int x = 0; x < str.length(); x ++){
            char.add(str.charAt(x));
        }
    }
}


Answer 7:

有一个行番石榴的解决方案:

Lists.charactersOf("hello");

你可以通过产生ImmutableList到的构造ArrayList ,但我可能会问,为什么你需要准确的ArrayList?



Answer 8:

String myString = "xxx";
ArrayList<Character> myArrayList = myString.chars().mapToObj(x -> (char) x).collect(toCollection(ArrayList::new));
myArrayList.forEach(System.out::println);


文章来源: convert string to arraylist in java