什么是Java中可用的最佳数据结构,以便存储字符串,然后对其执行某些操作,如:( Java中的初学者)
输入:Sam Mohit Laksh Nitesh Aquib
我知道我可以将它们存储在数据结构中,例如 ArrayList等。 但如果我将它们存储为:
Scanner sc= new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();
then iterating and adding them as:
for(int i=0;i<n;i++)
//let n be any number
{
List.add(sc.next());
}
但是,如果我想将像Mohit这样的Word转换为字符数组,如果[&#39; M&#39;,&#39; o&#39;,&#39; h&#39; &#39;我&#39;&#39;吨&#39;]
这样char [0] =&#39; M&#39;或者char [3] =&#39; i&#39; 我知道我可以迭代MyArrayList类型的迭代器对象。但是迭代器可以转换为char数组吗?
答案 0 :(得分:1)
我建议使用ArrayList和流来转换其他内容:
List<String> words = new ArrayList<>();
words.add("John");
words.add("Mohito");
将List<String>
转换为List<char[]>
:
List<char[]> asChar = words.stream()
.map(String::toCharArray)
.collect(Collectors.toList());
将char []转换为List<Character>
:
char[] cc = new char[]{'a', 'b'};
List<Character> collect1 = String.valueOf(cc)
.chars()
.mapToObj(i -> (char) i)
.collect(Collectors.toList());
从List获取char:
String letter = collect1.get(0).toString();
答案 1 :(得分:1)
但可以将迭代器转换为char数组吗?
是Iterator#next()
将为您提供字符串(因为List具有泛型类型String),可用于执行任何类型的字符串操作。请参阅下面的代码,将其放入main方法并运行。
String[] str = {"Sam", "Mohit", "Laksh", "Nitesh"};
List<String> list = new ArrayList<String>();
for(int i=0;i<str.length;i++)
{
list.add(str[i]);
}
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
//here apply some condition to get your specific string object
char[] chars = iter.next().toCharArray();
System.out.println(chars);
}