28

区切り記号のない文字列をArrayList<Character>.

私の文字列は次のようなものです:

String str = "abcd..."

これを行う 1 つの方法は、まず String を にchar[]変換し、次に を に変換するchar []ことArrayList <Character>です。

これを行うより良い方法はありますか?直接変換したいですか?私は大きなデータベースでコーディングしているので、時間とパフォーマンスを考慮しています。

4

7 に答える 7

19

このように追加する必要があります。

String str = "abcd...";
ArrayList<Character> chars = new ArrayList<Character>();
for (char c : str.toCharArray()) {
  chars.add(c);
}
于 2013-03-11T05:41:49.860 に答える
6

Retrobump で申し訳ありませんが、これは非常に簡単になりました。

Streams を使用すると、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

于 2016-07-01T16:10:17.897 に答える
5

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);
于 2013-03-11T05:22:10.470 に答える
2
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);
    }
于 2013-03-11T05:35:04.007 に答える
0

あなたはこのようにすることができます:

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));
        }
    }
}
于 2013-08-17T19:32:44.227 に答える