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,我对很多语法不太确定,但谢谢。