Java 是否可以进入一个数组,只获取该数组的一些值并创建一个新数组?

Java 是否可以进入一个数组,只获取该数组的一些值并创建一个新数组?,java,arrays,Java,Arrays,例如,假设我有一个数组 String[] array = {"hello", "bye", "yo", "ufc", "nba", "kobe"}; 是否可以使用for循环进入数组,并每3个单词创建一个新数组,这样新数组将是: String[] newArray = {"hello", "bye", "yo"} String[] newArray2 = {"ufc", "nba", "kobe"} 这里是java btw。谢谢 String[] newArray = new String[3

例如,假设我有一个数组

String[] array = {"hello", "bye", "yo", "ufc", "nba", "kobe"};
是否可以使用for循环进入数组,并每3个单词创建一个新数组,这样新数组将是:

String[] newArray = {"hello", "bye", "yo"}
String[] newArray2 = {"ufc", "nba", "kobe"}
这里是java btw。谢谢

String[] newArray = new String[3];
for (int i = 0 ; i < nRecords ; i++) {
   newArray[i] = array[i + startRecord];
}
你应该决定如何储存所有的蜘蛛。不能使用新名称生成变量。可以使用2D数组字符串[][]数组

全样本:

    int nRecords = 3;
    String[] array = {"hello", "bye", "yo", "ufc", "nba", "kobe"};
    int nArrays = array.length / nRecords;
    String[][] newArrays = new String[nArrays][];
    for (int k = 0; k < nArrays; k ++)  { 
      newArrays[k] = new String[nRecords];
      for (int i = 0 ; i < nRecords ; i++) {
        newArrays[k][i] = array[i + k * nRecords];
      }
    }

下面是一个完整的工作示例:

public static void main(String[] args)
{
    String[] array = {"hello", "bye", "yo", "ufc", "nba", "kobe"};

    List<String[]> every3 = new ArrayList<>();
    
    for (int i = 0; i < array.length; )
    {
        int len = (i < array.length - 3) ? 3 : array.length - i;
        String [] newArr = new String [len];
        
        for (int j = 0; j < len; j++)
        {
            newArr[j] = array[i++];
        }
        every3.add(newArr);
    }
    
    for (String [] arr : every3)
    {
        System.out.println(Arrays.toString(arr));
    }
}
产出:

[你好,再见,哟]

【ufc、nba、科比】

注意:如果主数组的长度不是3的倍数,此代码也适用

您可以使用

代码

结果


当然是。您尝试过什么?是的,但我认为数组对象更适合此任务
String[] newArray  = Arrays.copyOfRange(array, 0, 3);
String[] newArray2 = Arrays.copyOfRange(array, 3, array.length);
//newArray
hello bye yo 

//newArray2
ufc nba kobe