如何将字符串转换没有分离到ArrayList<Character>
。
我的字符串是这样的:
String str = "abcd..."
我知道这样做的一种方式是将所述字符串char[]
第一,然后将转换char []
到ArrayList <Character>
。
有没有更好的方式来做到这一点? 像直接转换? 考虑到时间和性能,因为我有一个很大的数据库编码。
如何将字符串转换没有分离到ArrayList<Character>
。
我的字符串是这样的:
String str = "abcd..."
我知道这样做的一种方式是将所述字符串char[]
第一,然后将转换char []
到ArrayList <Character>
。
有没有更好的方式来做到这一点? 像直接转换? 考虑到时间和性能,因为我有一个很大的数据库编码。
您需要添加像这样。
String str = "abcd...";
ArrayList<Character> chars = new ArrayList<Character>();
for (char c : str.toCharArray()) {
chars.add(c);
}
使用lambda表达式来做到这一点。
String big_data = "big-data";
ArrayList<Character> chars
= new ArrayList<>(
big_data.chars()
.mapToObj(e -> (char) e)
.collect(
Collectors.toList()
)
);
如果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);
很抱歉的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
。
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));
}
}
}
有一个行番石榴的解决方案:
Lists.charactersOf("hello");
你可以通过产生ImmutableList
到的构造ArrayList
,但我可能会问,为什么你需要准确的ArrayList?
String myString = "xxx";
ArrayList<Character> myArrayList = myString.chars().mapToObj(x -> (char) x).collect(toCollection(ArrayList::new));
myArrayList.forEach(System.out::println);