要求用户从阵列中进行选择

时间:2016-11-09 20:56:50

标签: java arrays string

我正在练习Java,并希望让用户从数组中选择一个选项,例如:

String Food[] = {"Beans","Rice","Spaghetti"};

到目前为止,我只知道Scanner,但这是我的第一个程序,所以我不太了解这个主题。

另外,有没有办法打印它?除了做:

System.out.println(Food[0]); //and so on  

对于他们中的每一个。

编辑:不是数组列表。

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式打印Array而不是ArrayList

System.out.println(Arrays.toString(Food));

它会打印出来:[Beans, Rice, Spaghetti]

如果你在谈论ArrayList,你必须这样做:

ArrayList<String> Food = new ArrayList<String>();

Food.add("Beans");
Food.add("Rice");
Food.add("Spaghetti");

然后,您可以遍历ArrayList并使用String构建自己的StringBuilder

阅读完评论后,我认为您在编写程序时遇到问题。我会帮你的。基本上你必须完成以下步骤:

  1. 程序启动
  2. 程序输出菜单中可用的选项
  3. 程序要求用户选择一个列出的选项
  4. 用户选择一个选项
  5. 只有当用户想要继续向他的订单添加内容时,程序才会重复步骤3。
  6. 如果用户不需要任何其他内容,则程序会输出订单的总费用
  7. 如何以正确的方式实现这一目标的一些想法:

    1. 我会使用class来封装“订单”的特征。例如:描述,名称和价格是您需要能够跟踪每件商品的重要内容。

    2. 当您不知道程序运行的次数时,您有两种选择:使用do while循环或while循环。尝试在可能使程序无限期运行的情况下进行思考,直到用户完成为止。在循环内部,您可以使用sum变量来跟踪用户想要的项目。

    3. 最好只使用Strings以外的数字来跟踪项目。计算机以这种方式更快地找到东西。因此,如果您使用HashMap来模拟程序中的数据库系统,它将使其更好,更快。然后,您可以使用if else而不是使用switch来控制流量。

    4. 我希望这会有所帮助。

答案 1 :(得分:0)

编辑:要更有效地打印出数组内容,请使用增强的for循环:

for(String f : Food)
{
    System.out.println(f);
}

这实际上与:

相同
for(int i = 0; i < Food.size(); i++)
{
    System.out.println(Food[i])
}

如果我理解你正在尝试做什么,我认为这应该足够了(免责声明,自从我使用Scanner()以来已经有一段时间了:

public static void main(String[] args)
{
    String[] food = {"Beans","Rice","Spaghetti"}; // Java standards are lowercase for variables and objects, uppercase for class names.
    Scanner in = new Scanner(System.in);

    System.out.println("What would you like to eat? Options:");
    for(String f : food)
    {
        System.out.println(f);
    }
    String response = in.next();

    boolean validEntry = false;
    for(String f: food)
    {
        if(response.equalsIgnoreCase(f))
        {
            validEntry = true;
        }
    }

    if(validEntry)
    {
        System.out.println("You chose " + response);
    }
    else
    {
        System.out.println("Invalid entry. Please retry.")
    }
}