2013-12-16 32 views
0

这是我当前的代码:如何显示INTS的列表,并显示总成本

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相当陌生,我只是不能想出解决方案。

+0

请使用Java命名约定;即变量名称应以小写字母开头。 – arshajii

+0

在你为什么不那种情况下接受整只使用'Costs.nextInt()' – exexzian

回答

1

一个字符串转换成int,并对其进行操作,你应该使用这种方法:

Integer.parseInt(string); 

该方法返回一个int

希望它有帮助!

0

如果你想输入一个整数,使用scan.nextInt()代替。那么它应该工作得很好。

这是一个代码怪异行,但:

TotalCost = Item1Cost + ", " + Item2Cost; 

什么是它应该做的?如果你使用整数,这将不会编译。

旁注:使用Java命名约定。变量名称应该以小写字母开头。

+0

这是我做呢,我是最近才开始的Java和IM有很多语法的,但由于不能确定。 – user3107448

4

那么你现在都在做的事情是String串联。在这里,您只需将两个String对象粘在一起,然后从中创建一个新的String。发生这种情况是因为在Java中,+运算符是过载。这意味着它根据操作数的类型表示不同的功能。重载运算符

String str = "Hello "; 
String str2 = "World."; 

String sentence = str + str2; // Sentence equals "Hello World." 

int num1 = 5; 
int num2 = 7; 

int total = num1 + num2; // Same operator, but total equals 12, not 57. 

你需要在你的例子做什么的

实例被强制转换操作数为正确的类型,这样的Java知道如何对他们的工作。也就是说,它将+重载为正确的功能。

int item1Cost = costs.nextInt(); //Notice the java naming conventions. 
int item2Cost = costs.nextInt(); 

System.out.println("Total cost: " + (item1Cost + item2Cost)); 

或者你可以在拉动价值为String,并执行一些验证。这是一个更安全的选项,因为这意味着您可以更轻松地控制程序流程。

String item1CostStr = costs.nextLine(); 
int item1Cost = 0; 

if(item1CostStr.matches("[0-9]+")) { 
    item1Cost = Integer.parseInt(item1CostStr); 
} 
+0

啊,我试了一会儿才开始工作,但不断遇到不兼容错误,我不知道如何解决。谢谢你,我觉得很愚蠢。 – user3107448

+0

没问题的人。如果你想了解幕后发生了什么,请务必阅读关于重载操作符的编辑:) – christopher

+0

由于它的价格,int没有真正的工作,所以我可以使用float,或者是否有更好的变量类型为了物价? – user3107448