为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以从一组可能的选项中随机化对象中 String 属性中的单个单词?

是否可以从一组可能的选项中随机化对象中 String 属性中的单个单词?

holdtom 2023-03-23 16:26:07
我对 Java 和一般编码还很陌生,所以如果这是一件简单的事情,我深表歉意。我想知道是否可以在字符串中添加一个变量,当从选项的 ArrayList 中选择项目本身时,该变量将被随机化。我已经创建了对象,将它们放在 ArrayList 中,并且有一个方法可以从 ArrayList 中随机调用索引并打印它们的属性。但是,有些(不是全部)我想从另一个单独的数组中随机化一部分“名称”属性。有没有办法做到这一点?如果可能的话,我希望它在每次调用时都是随机的,所以如果我从 ArrayList 中两次调用该特定对象,它的“名称”属性将不相同(除非偶然从中调用相同的后缀随机名称数组两次)。//Doesn't need randomizationItem r1 = new Item("Static Name", 1000);// (X) needs to be either "Title", "Callsign", or "Identifier"Item r2 = new Item("Random (X)", 500);更新:我听从了 DevilsHnd 的建议,但它似乎并没有取代任何东西。//declared in classString[] suffix = {"Title","Callsign","Nickname"};//as part of toString()if (name.contains("(X)")) {        name.replace("(X)", [new Random().nextInt(((suffix.length - 1) - 0) + 1) + 0]);我的 toString 仍然打印出“Random (X)”而不是所需的“Random Title”。if如果我删除该函数并使用静态值进行替换,我就能让它工作,比如name = name.replace("(X)","Title");,但我仍然无法弄清楚如何让它用后缀数组中的值替换它。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我不确定我是否明白你的意思,但你可能会从以下内容中得到一个想法:


String[] attributes = {"Title", "Callsign", "Identifier"};

String itemString = "Random (X)";

if (itemString.contains("(X)")) {

    itemString = itemString.replace(

                "(X)", 

                attributes[new Random().nextInt(((attributes.length - 1) - 0) + 1) + 0]

            );

}

System.out.println(itemString);

Item r2 = new Item(itemString, 500);


查看完整回答
反对 回复 2023-03-23
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信