区切り記号のない文字列をArrayList<Character>
.
私の文字列は次のようなものです:
String str = "abcd..."
これを行う 1 つの方法は、まず String を にchar[]
変換し、次に を に変換するchar []
ことArrayList <Character>
です。
これを行うより良い方法はありますか?直接変換したいですか?私は大きなデータベースでコーディングしているので、時間とパフォーマンスを考慮しています。
このように追加する必要があります。
String str = "abcd...";
ArrayList<Character> chars = new ArrayList<Character>();
for (char c : str.toCharArray()) {
chars.add(c);
}
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
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);
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);
}
あなたはこのようにすることができます:
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));
}
}
}