java - 将char[]转换为BigDecimal[],一般概念

标签 java

我有一个任务。我只是想讨论它的主要概念。:

  1. 用户从键盘项目输入,例如“ABCD”
  2. 每件商品都有预定义的价格,例如 A=$1.25
  3. 我需要使用 BigDecimal API 返回 "ABCD" 的总和。

我的想法是(简而言之):

  1. char[] items = bufferRead.readLine().toCharArray();//使用 BufferedReader(new InputStreamReader(System.in))
  2. char[] 项转换为 BigDecimal[]
  3. 计算BigDecimal的总和

听起来不错吗?

请不要提供代码 :) 我只想创建干净的、分解良好的 OO 代码 :) 非常感谢!

最佳答案

使用 charValueMap类型 Map<Character, BigDecimal>将“A”映射到 1.25,将“B”映射到 otherValue 等等。

然后阅读input来自用户如下:

Scanner scanner = new Scanner(Sytem.in);
System.out.println("Enter input: ");
String input = scanner.nextLine();
scanner.close();

然后使用这个input并计算sum就像下面这样:

BigDecimal sum = BigDecimal.ZERO;
for(char c : input.toCharArray())
{
  sum = sum.add(charValueMap.get(c));
}

System.out.println(sum.toString());

上面的代码片段假设您正在输入有效的输入。如果在 charValueMap 中找不到任何特定字符的映射,它会抛出错误,所以不要忘记在计算 sum 之前添加一些防御代码。 .

关于java - 将char[]转换为BigDecimal[],一般概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063630/

相关文章:

java - 从文件读取并在 GUI java 中显示

java - 如何放置<安全:authentication property ="principal.username"/> inside a value ="" in an input?

java - 如何在 context.xml 中存储字符串值

java - 使用crawler4j时如何解析html

java - 使用 oAuth 验证 javascript 小部件

java - 如何使用 jFilechooser 保存文件夹而不是文件?

Java,HttpURLConnection 和设置内容长度

java - 运行时异常和错误

java - 如何在没有在 application.properties 中设置的情况下获取 Controller 中的上下文路径

java - 如何将 java 类字段转换为字符串值数组