Hoe een tekenreeks te converteren zonder separator naar een ArrayList<Character>
.
Mijn string is als volgt:
String str = "abcd..."
Ik weet dat een manier om dit te doen is het converteren van de reeks naar char[]
eerst en converteer de char[]
naar ArrayList <Character>
.
Is er een betere manier om dit te doen? zoals direct converteren? Overwegende tijd en prestaties, omdat ik coderen met een grote database.
Antwoord 1, Autoriteit 100%
U moet deze als volgt toevoegen.
String str = "abcd...";
ArrayList<Character> chars = new ArrayList<Character>();
for (char c : str.toCharArray()) {
chars.add(c);
}
Antwoord 2, Autoriteit 39%
Gebruik Lambda-expressie om dit te doen.
String big_data = "big-data";
ArrayList<Character> chars
= new ArrayList<>(
big_data.chars()
.mapToObj(e -> (char) e)
.collect(
Collectors.toList()
)
);
Antwoord 3, Autoriteit 33%
Sorry voor de retrobump, maar dit is nu echt eenvoudig!
U kunt dit eenvoudig doen in Java 8 met behulp van streams! Probeer dit:
String string = "testingString";
List<Character> list = string.chars().mapToObj((i) -> Character.valueOf((char)i)).collect(Collectors.toList());
System.out.println(list);
U moet mapToObj
gebruiken omdat chars()
een IntStream
retourneert.
Antwoord 4, autoriteit 28%
Als u de lijst niet hoeft aan te passen nadat deze is gemaakt, is het waarschijnlijk de betere manier om de tekenreeks in een klasse te verpakken door de List<Character>
-interface als volgt te implementeren:
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 ();
}
}
En gebruik deze klasse dan als volgt:
List <Character> l = new StringCharacterList ("Hello, World!");
System.out.println (l);
Antwoord 5, autoriteit 11%
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);
}
Antwoord 6
je kunt het als volgt doen:
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));
}
}
}
Antwoord 7
String myString = "xxx";
ArrayList<Character> myArrayList = myString.chars().mapToObj(x -> (char) x).collect(toCollection(ArrayList::new));
myArrayList.forEach(System.out::println);