我希望获取一个单词或名称列表,并通过php或Java按特定顺序将它们输出到组中,但不知道如何操作。我将以订单为例:(澄清一下,这不是家庭作业。我正在为我举办的锦标赛做这件事,这样可以在活动期间轻松生成种子)
名字数量:12 团体规模:3
输出:
第1组: 希尔德弗兰克姆 Herminia Lakin Lashon Kwan
第2组: Earlie Uphoff Hermelinda Hostetter Esther Farraj
第3组: Rich Laclair 伯尼斯西尔瓦 塔娜奥尔金
第4组: Vicenta Baskin 开花Nesby 帕穆拉·达文
该列表将下一个名称放入行中,并按照列出的顺序将其插入新组,直到不再有组为止,然后重新启动,直到没有任何名称为止。
答案 0 :(得分:0)
$arrayOfNames = array(
'Hilde Frankum',
'Earlie Uphoff',
'Rich Laclair',
'Vicenta Baskin',
'Herminia Lakin',
'Hermelinda Hostetter',
'Bernice Sylva',
'Blossom Nesby',
'Lashon Kwan',
'Esther Farraj',
'Tana Olguin',
'Pamula Davin'
);
sort($arrayOfNames);
$ar = array_chunk($arrayOfNames, 3);
foreach($ar as $key => $groups){
echo "Group #" . ($key + 1) .' '. implode(' ',$groups) . "\n";
}
答案 1 :(得分:0)
这是一个应该这样做的Java方法。
String[][] groupThem(ArrayList<String> /*could be an array without many changes*/ things, int sizeOfGroups){
int qtyOfThings = things.size();
int qtyOfGroups = qtyOfThings / sizeOfGroups;
String[][] groups = new String[qtyOfGroups][sizeOfGroups];
int counter = 0;
while(counter < qtyOfThings){
groups[counter%qtyOfGroups][counter%sizeOfGroups] = things.get(counter);
counter++;
}
return groups;
}
答案 2 :(得分:0)
PFB示例代码。我创建了一个包含一个组(String对象数组)的Group类。一个ArrayList,它包含随机数量的Group对象。
程序是动态的,基于输入名称和组大小:
import java.util.ArrayList;
import java.util.List;
public class Group {
String group[];
public Group(int groupSize) {
this.group = new String[groupSize];
}
@Override
public String toString() {
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < group.length; i++) {
if (i != 0)
strBuilder.append(", ");
strBuilder.append(group[i]);
}
return strBuilder.toString();
}
public static void main(String[] args) {
String[] inputArray = { "Hilde Frankum", "Earlie Uphoff",
"Rich Laclair", "Vicenta Baskin", "Herminia Lakin",
"Hermelinda Hostetter", "Bernice Sylva", "Blossom Nesby",
"Lashon Kwan", "Esther Farraj", "Tana Olguin", "Pamula Davin" };
int numGroups = 4;
createGroup(inputArray, numGroups);
}
public static void createGroup(String inputArray[], int numGroups) {
int groupSize = inputArray.length / numGroups;
List<Group> lists = new ArrayList<Group>();
for (int i = 0; i < numGroups; i++)
lists.add(new Group(groupSize));
for (int i = 0, x = 0; i < groupSize; i++)
for (int j = 0; j < numGroups; j++)
lists.get(j).group[i] = inputArray[x++];
for (Group groups : lists)
System.out.println(groups.toString());
}
}