根据if语句更改字符串数组

时间:2016-11-16 05:06:19

标签: java arrays if-statement

我对编码的了解是非常新的和基本的,但我正在写一个爱好程序,需要一些帮助。我已经搜索了我的问题的答案,但有时我甚至发现要问的问题很难!

我目前要做的是根据一个群体是否在一个群组中相应地命名一个随机选择的生物。这就是我到目前为止所做的:

    String[] grouptype = {"a","a group of"};
    String group = grouptype[ran.nextInt(grouptype.length)];

    if ("a".equals(group)) { 
        String[] creaturename = {"bee" , "elf" , "goblins"};
    }
    else {
      String[] creaturename = {"bees", "elves", "goblins"};
    }

到目前为止,这个陈述似乎根本不起作用 - 我希望第二个阵列组是我从中选择一个生物名称的地方,如果组等于“a”。我为自己糟糕的技能道歉,但我很感激帮助,即使它有助于格式化我的问题,因为我相信将来会有更多的问题。

3 个答案:

答案 0 :(得分:0)

主要问题

createname的范围仅限于创建它们的代码块,即ifelse

String[] grouptype=  {"a","a group of"};
String[] creaturename = null;
String group = grouptype[ran.nextInt(grouptype.length)];

if ("a".equals(group)) { 
    creaturename = new String [] {"bee" , "elf" , "goblins"};
}
else {
   creaturename = new String [] {"bees", "elves", "goblins"};
}

// return/print? createname

注意

修正了错字。

答案 1 :(得分:0)

我可能不会使用您实现中的结构/概念来解决此问题。无论语言如何,如何组织代码始终是一个问题。

在这种情况下,您的主要概念是生物。所以我可能会创建一个名为Creature的类,它有一个名称属性,如“Goblin”或“Bee”或“Orc”。你可以在这个类上有一个公共方法,它也可以返回一个组的复数形式。

然后你可以创建一个List或一组Creature对象,选择一个随机对象,然后根据需要访问该随机生物的单数或组名。

    public class Creature
    {
        private String name;
        private String groupName;

        public Creature(String name, String groupName) {
            this.name = name;
            this.groupName = groupName;
        }

        public String getGroupName()
        {
            return groupName;
        }

        public String getName()
        {
            return name;
        }
    }

并运行它:


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

    public class CreatureGenerator
    {
        public static void main(String[] args) {
            Creature goblin = new Creature("Goblin", "Goblins");
            Creature elf = new Creature("Elf", "Elves");

            ArrayList creatures = new ArrayList();
            creatures.add(goblin);
            creatures.add(elf);

            Creature randomCreature = creatures.get(new Random().nextInt(creatures.size()));
            System.out.println("A " + randomCreature.getName());
            System.out.println("A group of " + randomCreature.getGroupName());
        }
    }

你可以在这个例子中看到一些有趣的问题 - 比如“精灵”和“精灵”。也许生物类本身可以知道如何生成描述的完整单数形式和完整的复数形式。也许即使是生物类也知道有多少特定生物 - 比如你在RGP怪物类型描述中可能拥有的1-10或1-6。

关于如何组织代码以使其更清晰,易于理解和稍后更改,总会有很多选择。

答案 2 :(得分:0)

您应该从creatureName语句中定义if-else。请遵循java命名约定。

String[] creatureName;
if ("a".equals(group)) { 
    creatureName = new String[]{"bee", "elf", "goblins"};
}else{
    creatureName = new String[]{"bees", "elves", "goblins"};
}