首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生成名称或单词列表,并分组输出。

生成名称或单词列表,并分组输出。
EN

Stack Overflow用户
提问于 2015-06-05 20:25:07
回答 3查看 84关注 0票数 0

我希望通过php或Java将单词或名称按特定顺序输出到组中,但不知道如何做到这一点。我将举例说明顺序:(为了澄清,这不是家庭作业。)我这样做是为了我主办的一场比赛,这会使我在比赛期间很容易地产生种子)

姓名数量: 12组:3

  • 席德·弗兰肯
  • 厄利·乌普夫
  • 富乳
  • 维森塔巴斯金
  • 赫米尼娅·拉金
  • 赫梅琳达·霍斯特特
  • 伯妮斯·西尔瓦
  • 花奈斯比
  • 关丽珊
  • 埃斯特·法拉杰
  • 塔娜·奥尔金
  • 帕穆拉·达文

输出:

第一组:希尔德·弗兰肯·赫米尼亚·拉金·关立群

第2组: Earlie Uphoff Hermelinda Hostetter Esther Farraj

第三组:富拉克莱·伯妮斯·西尔瓦·塔纳·奥尔金

第四组:维森塔·巴斯金·内斯比·帕穆拉·达文

该列表将下一个名称按顺序插入到一个新组中,直到没有剩下的组,然后重新启动,直到没有任何名称。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-05 21:40:51

PFB样本代码。我已经创建了一个Group类,它包含一个组(字符串对象数组)。一个包含随机数量的组对象的ArrayList。

程序基于组的输入名称和大小是动态的:

代码语言:javascript
运行
复制
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());
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-06-05 21:07:53

代码语言:javascript
运行
复制
$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";
}
票数 0
EN

Stack Overflow用户

发布于 2015-06-05 21:33:03

下面是一个应该这样做的Java方法。

代码语言:javascript
运行
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30675249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档