Java 如何显示整数列表和显示总成本
这是我当前的代码:Java 如何显示整数列表和显示总成本,java,Java,这是我当前的代码: public static void Costs(float[] args) { Scanner Costs = new Scanner(System.in); String Item1Cost; System.out.print("Enter the cost of Item 1 £"); Item1Cost = Costs.next(); String Item2Cost;
public static void Costs(float[] args) {
Scanner Costs = new Scanner(System.in);
String Item1Cost;
System.out.print("Enter the cost of Item 1 £");
Item1Cost = Costs.next();
String Item2Cost;
System.out.print("Enter the cost of Item 2 £");
Item2Cost = Costs.next();
String TotalCost;
TotalCost = Item1Cost + ", " + Item2Cost;
System.out.println("The cost of each of your items in order is: " + TotalCost);
}
我正在尝试更改它,以便它从用户那里获得一个int,并显示所有的价格,以及它们的总数
当我尝试自我时,我使用了这个,我可以将“成本”存储在一个字符串中并显示出来,但我不能用这个代码得出总数。我想知道是否有人能帮我一把。我相信答案很简单,但我对java相当陌生,我想不出解决方案。要将字符串转换为int并使用它进行操作,应该使用以下方法:
Integer.parseInt(string);
该方法返回一个int
希望有帮助 要将字符串转换为int并使用它进行操作,应使用以下方法:
Integer.parseInt(string);
该方法返回一个int
希望有帮助 如果希望输入为整数,请改用
scan.nextInt()
。那它就可以正常工作了
这是一行奇怪的代码:
TotalCost = Item1Cost + ", " + Item2Cost;
它应该做什么?如果使用整数,则无法编译此文件
旁注:使用java命名约定。变量名称应以小写字母开头。如果希望输入为整数,请使用
scan.nextInt()
。那它就可以正常工作了
这是一行奇怪的代码:
TotalCost = Item1Cost + ", " + Item2Cost;
它应该做什么?如果使用整数,则无法编译此文件
旁注:使用java命名约定。变量名应该以小写字母开头。所以现在要做的是
String
串联。在这里,您只需将两个String
对象粘贴在另一个对象的末尾,然后从中创建一个新的String
。这是因为在Java中,+
运算符重载。这意味着它根据操作数的类型表示不同的功能
重载运算符的示例
在示例中需要做的是将操作数转换为正确的类型,以便Java知道如何处理它们。也就是说,它会将
+
重载到正确的功能
范例
或者,您可以将该值作为字符串
拉入并执行一些验证。这是一个更安全的选择,因为它意味着您可以更轻松地控制程序流
String item1CostStr = costs.nextLine();
int item1Cost = 0;
if(item1CostStr.matches("[0-9]+")) {
item1Cost = Integer.parseInt(item1CostStr);
}
因此,您现在正在做的是
String
串联。在这里,您只需将两个String
对象粘贴在另一个对象的末尾,然后从中创建一个新的String
。这是因为在Java中,+
运算符重载。这意味着它根据操作数的类型表示不同的功能
重载运算符的示例
在示例中需要做的是将操作数转换为正确的类型,以便Java知道如何处理它们。也就是说,它会将
+
重载到正确的功能
范例
或者,您可以将该值作为字符串
拉入并执行一些验证。这是一个更安全的选择,因为它意味着您可以更轻松地控制程序流
String item1CostStr = costs.nextLine();
int item1Cost = 0;
if(item1CostStr.matches("[0-9]+")) {
item1Cost = Integer.parseInt(item1CostStr);
}
请使用Java命名约定;i、 e.变量名称应以小写字母开头。在这种情况下,为什么不使用
Costs.nextInt()
仅接受整数,请使用Java命名约定;i、 e.变量名应该以小写字母开头。在这种情况下,为什么不使用Costs.nextInt()
Ahhh只接受整数呢?我试了一段时间才让它起作用,但不断出现不兼容错误,我不知道如何修复。谢谢,老兄,我觉得自己很笨。没问题,老兄。如果您想了解幕后的情况,请务必阅读关于重载运算符的编辑:)因为它是一个价格,int实际上不起作用,所以我可以使用float,还是有更好的变量类型来表示物品的价格?您应该以字符串
的形式读入值,然后使用NumberFormat formatter=NumberFormat.getCurrencyInstance()编码>并使用格式(字符串输入)
方法。永远不要使用double
或float
来表示货币。啊,我尝试了一段时间来实现这一点,但不断出现不兼容错误,我不知道如何修复。谢谢,老兄,我觉得自己很笨。没问题,老兄。如果您想了解幕后的情况,请务必阅读关于重载运算符的编辑:)因为它是一个价格,int实际上不起作用,所以我可以使用float,还是有更好的变量类型来表示物品的价格?您应该以字符串
的形式读入值,然后使用NumberFormat formatter=NumberFormat.getCurrencyInstance()编码>并使用格式(字符串输入)
方法。永远不要用double
或float
来表示货币。这是我做的,我最近才开始使用java,我对很多语法不太确定,但谢谢。这是我做的,我最近才开始使用java,我对很多语法不太确定,但谢谢。