Java 如何在不同数组中拆分值?

Java 如何在不同数组中拆分值?,java,android,Java,Android,我正在用android做一个项目,我的数组列表值有一个问题,如下所示 [men-1, men-2, men-3, women-1, women-2, women-3] 如何在不同的数组中拆分这些值?i、 e如何在一个数组中保存men-1、men-2、men-3,在另一个数组中保存women-1、women-2、women-3 为男性和女性元素创建单独的列表 迭代列表中的所有元素 如果列表是字符串,您可以使用element.startsWith(“man”) 如果元素是男性或女性类的对象,您可以

我正在用android做一个项目,我的数组列表值有一个问题,如下所示

[men-1, men-2, men-3, women-1, women-2, women-3]

如何在不同的数组中拆分这些值?i、 e如何在一个数组中保存
men-1、men-2、men-3
,在另一个数组中保存
women-1、women-2、women-3

  • 为男性和女性元素创建单独的列表
  • 迭代列表中的所有元素
  • 如果列表是字符串,您可以使用
    element.startsWith(“man”)
  • 如果元素是男性或女性类的对象,您可以使用
    instanceof
    操作符,如
    if(element instanceof Man){listofman.add(element)}
  • 现在,如果要将ell元素放置在单独的数组中,可以从每个
    列表
    实例中使用
    toArray(T[]array)
    方法

  • 下面的代码可能对您有所帮助

    import java.util.Arrays;
    public class Test{
        public static void main(String[] args) {
           String[] input = new String[] {"men-1", "men-2", "men-3", "women-1", "women-2", "women-3"};
           int arr1Size=getCount(input, "women");
           String[] arr1 = new String[arr1Size];
           String[] arr2 = new String[input.length-arr1Size];
           int i=0,j=0;
           for(String str: input){
               if(str.contains("women")){
                   arr1[i] = str;
                   i++;
               }else{
                   arr2[j] = str;
                   j++;
               }           
           }
           System.out.println(Arrays.deepToString(arr1));
           System.out.println(Arrays.deepToString(arr2));       
        }
    
        public static int getCount(String[] input, String find){
            int count=0;
            for(String str: input){
               if(str.contains(find)){
                   count++;
               }
            }
            return count;
        }
    }
    

    如果这些是类的对象,那么您可以使用instanceOf操作符轻松地完成它。。。否则下面的代码可以帮助您。。您可以使用arraylist,也可以使用arraylist

       /**
     * 
     */
    package com.sharique.test;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    
    /**
     * @author Sharique
     *
     */
    public class Test {
    
        /**
         * @param args
         */
        //List<Integer> list = new ArrayList<>();
        //int[] arr = new int[10];
        //int[] ar1= arr.clone();
    
        public void usingArrays(){
            StringBuffer sb1 = new StringBuffer("Men");
            String[] arrays = {"Men-1","Men-2","Men-3","Women-1","Women-2","Women-3"};
            String[] arrOfMen = new String[3];
            String[] arrOfWomen = new String[3];
            String str=null;
            int count1=0;
            int count2=0;
            for(int i=0;i<arrays.length;i++){
                str=arrays[i];
                if(str.contains(sb1)){
                    arrOfMen[count1++]=str;
                }else{              
                    arrOfWomen[count2++]=str;
                }
            }
            for(int i=0;i<arrOfMen.length;i++)
                System.out.print(arrOfMen[i]+" ");
            //For a new Line
            System.out.println();
            for(int i=0;i<arrOfWomen.length;i++)
                System.out.print(arrOfWomen[i]+" ");
        }
        public void usingArrayList(){
            String[] arrays1 = {"Men-1","Men-2","Men-3","Women-1","Women-2","Women-3"};
            List<String> list = new ArrayList<>(Arrays.asList(arrays1));
            String[] arrays2 = new String[3];
            StringBuffer sb = new StringBuffer("Women");
            int count=0;
            String str=null;
            Iterator<String> iterator = list.iterator();
            while(iterator.hasNext()){
                str =iterator.next();
                if(str.contains(sb)){
                    arrays2[count++] = str;
                    iterator.remove();
                }
            }
            //for a new line
            System.out.println();
            arrays1 = list.toArray(new String[list.size()]);
            for(int i=0;i<arrays1.length;i++)
                System.out.print(arrays1[i]+" ");
            //for a new line
            System.out.println();
            for(int i=0;i<arrays2.length;i++)
                System.out.print(arrays2[i]+" ");
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test test = new Test();
            test.usingArrays();
            test.usingArrayList();
    
        }
    
    }
    
    /**
    * 
    */
    包com.sharique.test;
    导入java.util.ArrayList;
    导入java.util.array;
    导入java.util.Iterator;
    导入java.util.List;
    /**
    *@作者Sharique
    *
    */
    公开课考试{
    /**
    *@param args
    */
    //列表=新的ArrayList();
    //int[]arr=新的int[10];
    //int[]ar1=arr.clone();
    使用Arrays()的公共作废{
    StringBuffer sb1=新StringBuffer(“Men”);
    String[]数组={“Men-1”、“Men-2”、“Men-3”、“Women-1”、“Women-2”、“Women-3”};
    字符串[]arrOfMen=新字符串[3];
    字符串[]arrOfWomen=新字符串[3];
    字符串str=null;
    int count1=0;
    int count2=0;
    
    对于(inti=0;i)元素是字符串还是一些Man、Woman类的对象?