java中存储字符串的典型操作

时间:2017-08-19 20:17:55

标签: java arrays string arraylist linked-list

什么是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数组吗?

2 个答案:

答案 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);
    }