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