我有一个任务。我只是想讨论它的主要概念。:
- 用户从键盘项目输入,例如
“ABCD”
- 每件商品都有预定义的价格,例如
A=$1.25
- 我需要使用
BigDecimal
API 返回"ABCD"
的总和。
我的想法是(简而言之):
char[] items = bufferRead.readLine().toCharArray();//使用 BufferedReader(new InputStreamReader(System.in))
- 将
char[]
项转换为BigDecimal[]
- 计算
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/