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

我对 Java 和一般编码还很陌生,所以如果这是一件简单的事情,我深表歉意。我想知道是否可以在字符串中添加一个变量,当从选项的 ArrayList 中选择项目本身时,该变量将被随机化。


我已经创建了对象,将它们放在 ArrayList 中,并且有一个方法可以从 ArrayList 中随机调用索引并打印它们的属性。但是,有些(不是全部)我想从另一个单独的数组中随机化一部分“名称”属性。有没有办法做到这一点?如果可能的话,我希望它在每次调用时都是随机的,所以如果我从 ArrayList 中两次调用该特定对象,它的“名称”属性将不相同(除非偶然从中调用相同的后缀随机名称数组两次)。


//Doesn't need randomization

Item 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 class

String[] 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");,但我仍然无法弄清楚如何让它用后缀数组中的值替换它。


holdtom
浏览 103回答 1
1回答

杨__羊羊

我不确定我是否明白你的意思,但你可能会从以下内容中得到一个想法: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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java