You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何通过循环将数组生成的随机公司名赋值给多个字符串

解决方案

你可以把单条公司名的生成逻辑封装到循环体中,每次循环重新生成随机索引和概率判定值,就能高效生成5个独立的符合概率要求的公司名。注意原代码只生成了一次随机索引,直接复用的话所有公司名都会用到相同的前缀/中缀/后缀片段,无法实现随机效果。

import java.util.Random;
import java.util.ArrayList;
import java.util.List;

class Main {
    public static void main(String[] args) {
        String[] companyFirstNames = {"Alpine", "Bear", "Bull", "Cuckoo", "Delta", "Dragon", "Echo", "Fighter", "Giant", "H20", "Indo", "Jared", "Jason", "Kicker", "Lodge", "Little", "Manzo", "Mint", "Neighbour", "Nelson", "Ossuary", "Open", "Private", "Poor", "Quick", "Quiant", "Reach", "Rebel", "Space", "Spear", "Titus", "Trebble", "Underdog", "Upper", "Vital", "Vert", "White", "Whistle", "X's", "Yuri's", "Yogurt", "Zebra"};
        String[] companySecondNames = {" Science", " Technology", " Arts", " Research", " Laboratory", " Lodging", " Woodworking", " Fashion", " Oil", " Trading", "  Investing"};
        String[] companyLastNames = {" Limited", " Co.", " Corp.", " Corporation", " Ltd", " Institute", " Association", " Federation", " Firm"};
        Random randomNamer = new Random();

        // 用List存储5个公司名,比单独定义5个变量更易维护
        List<String> companyList = new ArrayList<>();
        // 循环5次生成5个公司名
        for (int i = 0; i < 5; i++) {
            // 每次循环重新生成随机索引,保证每个公司名独立
            int randomOne = randomNamer.nextInt(companyFirstNames.length);
            int randomTwo = randomNamer.nextInt(companySecondNames.length);
            int randomThree = randomNamer.nextInt(companyLastNames.length);
            int probability = randomNamer.nextInt(100);

            String companyName;
            // 3词概率45%,2词40%,1词15%
            if (probability < 45) {
                companyName = companyFirstNames[randomOne] + companySecondNames[randomTwo] + companyLastNames[randomThree];
            } else if (probability < 85) {
                companyName = companyFirstNames[randomOne] + companyLastNames[randomThree];
            } else {
                companyName = companyFirstNames[randomOne];
            }
            companyList.add(companyName);
            System.out.println("第" + (i+1) + "个公司名:" + companyName);
        }

        // 如果必须要赋值给单独的五个变量,可以从List中取
        String companyOne = companyList.get(0);
        String companyTwo = companyList.get(1);
        String companyThree = companyList.get(2);
        String companyFour = companyList.get(3);
        String companyFive = companyList.get(4);
    }
}

  • 如果你不需要单独的五个companyX变量,直接操作companyList即可,后续调整生成数量只需要修改循环终止条件,扩展性更强。
  • 概率判断用<而不是<=是为了适配nextInt(100)生成的0-99整数区间,避免边界判断误差,和你原本的概率分配逻辑完全一致。

内容的提问来源于stack exchange,提问作者Jared

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:24:02