2014-01-14 46 views
0

我的第一個問題。解析數組並提取相同長度的字符串

可以說,我有一個字符串數組列表中的Java

ArrayList<string> s= new ArrayList<string>; 

,它包含由大小排序列表。

s.add("ab"); 
s.add("abc"); 
s.add("aab"); 
s.add("baab"); 
s.add("abcd"); 

我想要做的是,迭代列表並選擇具有相同長度的元素組並放入數組的分隔列。

組1 AB 2組ABC,AAB等等...

我這樣做在Java中,請幫助

+4

幫助什麼? –

+0

首先,它是'列表 s =新的ArrayList ();' –

+0

你試了一下沒有奏效? – Dan

回答

1

因爲他們是按大小排序已經很容易。這裏有一個工作方式:

ArrayList<ArrayList<String>> listofLists = new ArrayList<ArrayList<String>>(); 
int length = -1; 
for(String str : s) { // where s is your sorted ArrayList of Strings 
    if(str.length() > length) { 
     listofLists.add(new ArrayList<String>()); 
     length = str.length(); 
    } 
    listofLists.get(listofLists.size()-1).add(str); 
} 

最後,listofLists將是相同長度的StringsArrayListsArrayList含氧基團。再次,這取決於s(您的ArrayList<String>)按大小排序。此外,String必須在那裏大寫。

+0

簡單美女....... – user3173811

0

您可以使用此代碼,「它的工作原理,因爲你需要」

import java.util.ArrayList; 

public class Test{ 
    public static void main(String[] args){ 
     ArrayList<String> s = new ArrayList<String>(); 
     s.add("ab"); 
     s.add("abc"); 
     s.add("aab"); 
     s.add("baab"); 
     s.add("abcd"); 
     String[] group1 = new String[s.size()]; 
     String[] group2 = new String[s.size()]; 
     String[] group3 = new String[s.size()]; 

     for(int i = 0 ; i < s.size() ; i++){ 
      if(s.get(i).length() == 2) 
       group1[i] = s.get(i); 
      else if(s.get(i).length() == 3) 
       group2[i] = s.get(i); 
      else 
       group3[i] = s.get(i); 
     } 
     for(String ss : group1){ 
      if(ss == null) 
       break; 
      System.out.println(ss); 
     } 
     System.out.println(); 
     for(String ss : group2){ 
      if(ss == null) 
       continue; 
      System.out.println(ss); 
     } 
     System.out.println(); 
     for(String ss : group3){ 
      if(ss == null) 
       continue; 
      System.out.println(ss); 
     } 
    } 
} 

我希望對你有用。

+0

此解決方案僅適用於給定的示例輸入。 – Rhs

+0

你也可以從用戶那裏獲得輸入 – Scorpion