解析数组并提取相同长度的字符串

时间:2014-01-14 17:51:12

标签: java arrays list

我的第一个问题。

假设我在java中有字符串的arraylist

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中这样做请帮助

2 个答案:

答案 0 :(得分: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将成为ArrayListArrayListsStrings个相同长度的群组。同样,这取决于s(您的ArrayList<String>)按大小排序。此外,String必须在那里大写。

答案 1 :(得分: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);
        }
    }
}

我希望它对你有用。