3 回答

TA貢獻1859條經驗 獲得超6個贊
這是一個示例,可讓您為每個列表提供大小列表,因此您可以輕松生成您指定的輸出,而不必在每個列表中包含 3 個名稱:
package com.inlet.ifserver;
import java.util.Arrays;
public class x {
public static void main(String ...args) {
String[] name = {"Alix", "Jack", "Alexis", "Adam", "John", "Lexi",
"George", "Gregory", "Paul", "Bjorn", "Aaron", "Joseph", "Anderson"};
int[] counts = { 3, 3, 2 };
int start = 0;
for (int count : counts) {
int end = Integer.min(start + count, name.length);
if (end == start)
break;
System.out.println(Arrays.toString(Arrays.copyOfRange(name, start, end)));
start = end;
}
if (start < name.length)
System.out.println(Arrays.toString(Arrays.copyOfRange(name, start, name.length)));
}
}
輸出:
[Alix, Jack, Alexis]
[Adam, John, Lexi]
[George, Gregory]
[Paul, Bjorn, Aaron, Joseph, Anderson]

TA貢獻1824條經驗 獲得超6個贊
Arrays.copyOfRange的那樣是去這里的方式。此示例提供了一個不同塊長度的數組,因此它與您問題中的預期輸出相匹配??雌饋硐襁@樣
public static void printInBlocks(String[] arr, int[] blocks) {
int idx = 0;
for (int blockSize: blocks) {
String str = Arrays.toString(Arrays.copyOfRange(name, idx, idx += blockSize));
System.out.println(str);
}
}
然后你可以這樣稱呼Main它
public static void main(String[] args) {
String[] name = {"Alix", "Jack", "Alexis", "Adam", "John", "Lexi",
"George", "Gregory", "Paul", "Bjorn", "Aaron", "Joseph", "Anderson"};
int[] blocks = {3, 3, 2, 5};
printInBlocks(name, blocks);
}
輸出看起來像
[Alix, Jack, Alexis]
[Adam, John, Lexi]
[George, Gregory]
[Paul, Bjorn, Aaron, Joseph, Anderson]
筆記
其中blocks包含每行項目數的總和必須等于項目數name

TA貢獻1828條經驗 獲得超3個贊
您可以手動拆分陣列并使用該copyOfRange方法。
import java.util.Arrays;
public class HelloWorld {
public static void main(String []args){
String[] name = {"Alix", "Jack", "Alexis", "Adam", "John", "Lexi",
"George", "Gregory", "Paul", "Bjorn", "Aaron", "Joseph", "Anderson"};
int splitArrayForSize = 3;
for(int i=0; i< name.length; i+=splitArrayForSize){
String[] subArray = Arrays.copyOfRange(name, i,
Math.min(name.length, i + splitArrayForSize));
String subArrayAsString = Arrays.toString(subArray);
System.out.println(subArrayAsString);
}
}
}
輸出:
[Alix, Jack, Alexis]
[Adam, John, Lexi]
[George, Gregory, Paul]
[Bjorn, Aaron, Joseph]
[Anderson]
我確信有一種更簡單、更實用的方法來實現這一點。我會對這種方法感興趣。
添加回答
舉報