我对 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);
添加回答
举报
0/150
提交
取消