2013-02-03 81 views
0

编写一个允许用户输入多个值的程序,然后该程序应该将以磅(GBP)输入的值转换为多种不同的货币。菜单应该是这个样子:将arraylist中的每个数字相乘

  1. 输入值和类型-1停止
  2. 欧元
  3. 美元
  4. 日元
  5. 卢比
  6. 退出

2时,3,4或5被选中时,程序应该显示在原磅和公司中输入的每个值兑换货币,以及所有数字和兑换总数。

public class Money { 
    public static void main(String[] args) { 
     System.out.println("Enter values and type -1 to stop"); 
     System.out.println("'1' = Euros"); 
     System.out.println("'2' = Dollars"); 
     System.out.println("'3' = Yen"); 
     System.out.println("'4' = Rupees"); 
     System.out.println("'5' = Exit"); 

     int count=0; 
     String exit = "-1", euro="E"; 

     Scanner scan = new Scanner(System.in); 

     System.out.println(); 
     System.out.print("Convert to: "); 

     while (!scan.hasNext("[E, D, Y, R, X]+")) { 
      System.out.print("Invalid value, enter Surname again: "); 
      scan.next(); 
     } 

     String exTo = scan.next(); 

     ArrayList<String> num = new ArrayList<String>(); 

     while (true) { 
      count++; 
      System.out.print("|| Enter values "+count+" in (P)Pounds : "); 

      while (!scan.hasNextDouble()) { 
       System.out.print("Invalid value, try again: "); 
       scan.next(); 
      } 
      num.add(scan.next()); 

      if(num.contains(exit)){ 
       String ar[]=num.toArray(new String[num.size()]); 
       ar=num.toArray(ar); 

       System.out.println("Result: "+ num); 

       scan.close(); 
       break; 
      } 
     } 
    } 
} 
+2

什么问题。 ? – Arpit

+0

如何乘以每个数字内数组列表等 用户键入数字内部数组列表 阵列看起来像这样:[20,30,40] 和后我需要像每个数字结果显示乘以2例如 [40,60,80] –

+0

))))或者任何其他方式从用户收集数字,例如将它们保存在数组中并显示所有数字乘以选择的值 –

回答

0

试试这个:

import java.util.*; 
class Money { 
    public static void main(String[] args) { 
     System.out.println("Enter values and type -1 to stop"); 
     System.out.println("'1' = Euros"); 
     System.out.println("'2' = Dollars"); 
     System.out.println("'3' = Yen"); 
     System.out.println("'4' = Rupees"); 
     System.out.println("'5' = Exit"); 
    int count=0; 
    String exit = "-1", euro="E"; 

    Scanner scan = new Scanner(System.in); 

    System.out.println(); 
    System.out.print("Convert to: "); 

    while (!scan.hasNext("[E, D, Y, R, X]+")) { 
     System.out.print("Invalid value, enter Surname again: "); 
     scan.next(); 
    } 

    String exTo = scan.next(); 

    ArrayList<String> num = new ArrayList<String>(); 

    while (true) { 
     count++; 
     System.out.print("|| Enter values "+count+" in (P)Pounds : "); 

     while (!scan.hasNextDouble()) { 
      System.out.print("Invalid value, try again: "); 
      scan.next(); 
     } 
     num.add(scan.next()); 

     if(num.contains(exit)){ 
      for(int i=0;i<num.size();i++){ 
      num.set(i,Integer.toString((Integer.parseInt(num.get(i))*2))); 
      } 
      System.out.println("Result: "+ num); 

      scan.close(); 
      break; 
     } 
    } 
} 
} 

删除最后输入(-1)

打印前加入这一行num.remove("-1");

+0

用户输入数字(以磅计) ArrayList num = new ArrayList (); 然后用户例如选择转换为欧元,并将arraylist中的EACH值乘以欧元汇率(例如0.94)并显示给用户arraylist,但以欧元为单位 –

+0

有什么方法可以做到我用字符串提问?以及不能使用整数,因为必须收集像0.676567等数字... –

+0

示例输入?在实际问题的代码在to,我收集所有数字到数组唯一的位,我奋斗的是将arraylist乘以2,当我这样做时总是错误... –

0

如何繁殖内部数组列表中的每个号码像用户输入 阵列中的数字列表数组看起来像这样:[20,30,40]和 后我需要像每个数字结果显示通过乘以用于 实施例2 [40,60,80]

如何围绕通过该列表循环,并执行计算?

for (Integer i : yourList) 
    i *= 2; 

或者你可以尝试番石榴,Lists.transform(list, func)如果你想做更复杂的计算。

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Lists.html#transform(java.util.List,com.google.common.base.Function)

+0

用户输入数字(以磅为单位) ArrayList num = new ArrayList (); 然后用户例如选择转换为欧元,并且arraylist内的EACH值乘以欧元汇率(例如0.94)并向用户显示列表,但是以欧元 –

相关问题