生成名称或单词列表并将其输出成组

时间:2015-06-05 20:25:08

标签: java php arrays arraylist

我希望获取一个单词或名称列表,并通过php或Java按特定顺序将它们输出到组中,但不知道如何操作。我将以订单为例:(澄清一下,这不是家庭作业。我正在为我举办的锦标赛做这件事,这样可以在活动期间轻松生成种子)

名字数量:12 团体规模:3

  • Hilde Frankum
  • Earlie Uphoff
  • Rich Laclair
  • Vicenta Baskin
  • Herminia Lakin
  • Hermelinda Hostetter
  • Bernice Sylva
  • Blossom Nesby
  • Lashon Kwan
  • Esther Farraj
  • Tana Olguin
  • Pamula Davin

输出:

第1组: 希尔德弗兰克姆 Herminia Lakin Lashon Kwan

第2组: Earlie Uphoff Hermelinda Hostetter Esther Farraj

第3组: Rich Laclair 伯尼斯西尔瓦 塔娜奥尔金

第4组: Vicenta Baskin 开花Nesby 帕穆拉·达文

该列表将下一个名称放入行中,并按照列出的顺序将其插入新组,直到不再有组为止,然后重新启动,直到没有任何名称为止。

3 个答案:

答案 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());
    }
}