十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
代码写好了,币种和金额作为Money类的属性存储到List中,再将List中重复币种的金额相加,如下(注意在Eclipse或者MyEclispse里面运行时,添加相关的包):
成都创新互联主营定陶网站建设的网络公司,主营网站建设方案,app软件定制开发,定陶h5微信小程序搭建,定陶网站营销推广欢迎定陶等地区企业咨询
public class Money {
private String type; //币种
private int value; //金额
//初始化币种和金额
public Money(String type,int value){
this.type=type;
this.value=value;
}
//这个构造器仅仅用于获得一个Money类去调用isSameType()方法,注意这个类只能在本类中使用
Money(){}
//获取相同类型的币种并且将它们的金额总和放在一个list中
public List isSameType(ListMoney list){
List l = new ArrayListMoney();
if(list!=null){
for (int i = 0; i list.size(); i++) {
int sumMoney=list.get(i).value;
for(int j = i+1;jlist.size();j++){
if(list.get(i).type.equals(list.get(j).type)){
sumMoney=sumMoney+list.get(j).value;
list.remove(list.get(j));
j=j-1;//删除一个元素以后还原指针位置
}
}
Money m =new Money(list.get(i).type,sumMoney);
l.add(m);
}
}
return l;
}
public String toString(){
return "币种类型:"+ this.type+"\t金额总和:"+this.value;
}
public static void main(String[] args) {
//初始化
ListMoney list = new ArrayListMoney();
Money m1 = new Money("dollar",6);
Money m2 = new Money("renmbi",8);
Money m3 = new Money("dollar",7);
Money m4 = new Money("dollar",9);
Money m5 = new Money("lubu",4);
Money m6 = new Money("renmbi",10);
Money m7 = new Money("lubu",3);
Money m8 = new Money("taidao",15);
list.add(m1);//注意这里加入两次m1
list.add(m1);
list.add(m2);
list.add(m3);
list.add(m4);
list.add(m5);
list.add(m6);
list.add(m7);
list.add(m8);
Money m = new Money();
//求和
List l = m.isSameType(list);
for (int i = 0; i l.size(); i++) {
System.out.println(l.get(i));
}
}
}
只写一个加法的部分的核心代码,其他类似:
public String calculateAdd( String a,String b)throws Exception{
double a=Double.parseDouble(a);
double b=Double.parseDouble(b);
double result=a+b;
NumberFormat nf2 =
NumberFormat.getInstance(Locale.GERMAN); // 得到德国的格式 ,这里可以设置不
//同国家的格式,无参默认本地
String resultStr=nf2.format(result);
System.out.println(resultStr);
return resultStr;
}
注意:1.传入的参数是数字组成的字符串,不然会出错
2.写代码时注意引包
总和的话把这几个语句:
total=amount*price;
改成
total+=amount*price;
不就行了吗