我正在练习Java,并希望让用户从数组中选择一个选项,例如:
String Food[] = {"Beans","Rice","Spaghetti"};
到目前为止,我只知道Scanner,但这是我的第一个程序,所以我不太了解这个主题。
另外,有没有办法打印它?除了做:
System.out.println(Food[0]); //and so on
对于他们中的每一个。
编辑:不是数组列表。
答案 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
阅读完评论后,我认为您在编写程序时遇到问题。我会帮你的。基本上你必须完成以下步骤:
如何以正确的方式实现这一目标的一些想法:
我会使用class
来封装“订单”的特征。例如:描述,名称和价格是您需要能够跟踪每件商品的重要内容。
当您不知道程序运行的次数时,您有两种选择:使用do while
循环或while
循环。尝试在可能使程序无限期运行的情况下进行思考,直到用户完成为止。在循环内部,您可以使用sum
变量来跟踪用户想要的项目。
最好只使用Strings
以外的数字来跟踪项目。计算机以这种方式更快地找到东西。因此,如果您使用HashMap来模拟程序中的数据库系统,它将使其更好,更快。然后,您可以使用if else
而不是使用switch
来控制流量。
我希望这会有所帮助。
答案 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.")
}
}