2017-08-19 23 views
-6

什麼是Java中的最佳數據結構availaible來存儲字符串,然後做一些關於它的操作的,如:(在Java初學者)典型操作

輸入:山姆莫希特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()); 
} 

但如果我想將Word一樣莫希特作爲一個字符數組爲[「M」,「O」,「H」,「我」, 't']

因此,char [0] ='M'或char [3] ='我' 我知道我可以遍歷MyArrayList類型的迭代器對象。但可以將該迭代器轉換爲char數組?

+1

做'myString.toCharArray()'從字符串 – davidxxx

+0

獲得字符數組,否則這個問題有些讀起來像是[XY問題(http://xyproblem.info/),留下我想知道產生問題的根本問題是什麼? –

+0

但對象是arraylist,可以通過迭代器訪問我認爲,因此toCharArray不起作用。 @davidxxx – imshashi17

回答

1

但可以在迭代器被轉換爲char數組?

是的Iterator#next()會給你的字符串(因爲列表具有泛型類型的字符串),可以用來執行任何類型的字符串操作。看下面的代碼把它放在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); 
    } 
+0

我認爲迭代器不是必需的afterall Btw它也有幫助! – imshashi17

+0

@ imshashi17我知道我們可以直接使用每個循環,但問題明確要求迭代器,這就是爲什麼我使用迭代器來描述它將工作 –

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()); 

從列表中獲取字符:

String letter = collect1.get(0).toString(); 
+0

編輯您的問題 –