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

Java 解析数组并提取相同长度的字符串,java,arrays,list,Java,Arrays,List,我的第一个问题 假设我有java中字符串的arraylist ArrayList<string> s= new ArrayList<string>; 我想做的是,迭代列表并选择一组长度相同的元素,并将其放入seprate数组中 第一组ab 第二组abc、aab等 我是用java做这件事的,请帮助我,因为它们已经按大小排序了,这很容易。以下是一种有效的方法: ArrayList<ArrayList<String>> listofLists = ne

我的第一个问题

假设我有java中字符串的arraylist

ArrayList<string> s= new ArrayList<string>;
我想做的是,迭代列表并选择一组长度相同的元素,并将其放入seprate数组中

第一组ab 第二组abc、aab等


我是用java做这件事的,请帮助我,因为它们已经按大小排序了,这很容易。以下是一种有效的方法:

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);
}
ArrayList ListofList=新建ArrayList();
整数长度=-1;
对于(String str:s){//其中s是字符串的排序数组列表
如果(str.length()>长度){
add(newarraylist());
长度=str.length();
}
get(listofLists.size()-1).add(str);
}
最后,
listofLists
将是
ArrayLists
ArrayList
,包含相同长度的
字符串组。同样,这取决于按大小排序的
s
(您的
ArrayList
)。另外,
字符串
必须大写。

您可以使用此代码“它可以根据需要工作”

import java.util.ArrayList;
公开课考试{
公共静态void main(字符串[]args){
ArrayList s=新的ArrayList();
s、 添加(“ab”);
s、 添加(“abc”);
s、 添加(“aab”);
s、 添加(“baab”);
s、 添加(“abcd”);
String[]group1=新字符串[s.size()];
String[]group2=新字符串[s.size()];
String[]group3=新字符串[s.size()];
对于(int i=0;i

我希望它对您有用。

首先,它是
List s=new ArrayList()您尝试了哪些不起作用的内容?此解决方案仅适用于给定的示例输入。您也可以从用户处获取输入
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);
}
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);
        }
    }
}