我有一个包含产品和值的字符串数组。这样布置:
ProductA 200
ProductB 50
ProductC 120
ProductD 1100
ProductE 5
我需要找到所有这些数字的总和。我能做的最好的事情就是使用此代码来找到总和,但它正在找到每个数字的总和:
for (char c : rdmPrize.replaceAll("\\D", "").toCharArray())
{
int digit = c - '0';
sum += digit;
if (digit % 2 == 0)
{
evenSum += digit;
}
}
在此示例中,它给我的输出为17,但我需要为1475。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
您可以通过在字符串上使用split
并在索引1处获取值来实现此目的
String[] arr = {"ProductA 200","ProductB 50","ProductC 120","ProductD 1100","ProductE 5"};
int sum =0;
for(String s : arr) {
sum+=Integer.parseInt(s.split(" ")[1]);
}
System.out.println(sum); //1475
通过使用Java-8
int total = Arrays.stream(arr).mapToInt(str->Integer.parseInt(str.split(" ")[1])).sum();
答案 1 :(得分:0)
static Integer sumArray( String[] strArr ) {
Integer sum = 0;
for ( String numStr : strArr ) {
sum += Integer.parseInt( numStr );
}
return sum;
}
您可以这样做。
答案 2 :(得分:0)
总和
String[] rdmprice = {
"ProductA 200",
"ProductB 50",
"ProductC 120",
"ProductD 1100",
"ProductE 5"
};
BigDecimal result = Arrays.stream(rdmprice)
.map(i -> new BigDecimal(i.split("\\s+")[1]))
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.printf("Result: %f", result);
答案 3 :(得分:0)
按空格分隔每行输入,您将获得一个由空格分隔的字符串数组。然后只需将所需的元素解析为int并将其添加到总和中即可。
// input[0] = the product name string
// input[1] = the number string
int sum = 0;
for (String[] input : rdmPrize.split(" ")) {
sum += Integer.parseInt(input[1]);
}
System.out.println(sum);