Kotlin \ Java – 如何获取更改的数组元素的总和

我有一个字符串的价格阵列,看起来像这个“$ 100.00”。 我想检查所有这些价格的总和,但在我需要将字符串更改为数字之前,我是这样做的:

val price2 = "$100.00" val price3 = "INCLUDED" val price4 = "$200.00" val prices: Array<String> = arrayOf(price2, price3, price4) 

以下是我如何将字符串更改为浮点:

  for (s: String in prices) { //I replace all dollar signs to empty space val s1 = s.replace("$", "") //I replace Included price to 0 val s2 = s1.replace("INCLUDED", "0") //Change type to float val p = s2.toFloat() println(p) } 

如何找到所有这些变化的元素的总和? 我的意思是,我想要100.0 + 0.0 + 200.0的总和。 我试过的东西:

 //added this into for loop val sum = +p println(sum) 

要么

  //I tried to put this into the loop and after it val x = prices[0] + prices[1] + prices[2] println(x) 

感谢您的帮助! 我一直在努力写在Kotlin,但Java的例子将罚款。

编辑:我一直在考虑添加p到一个新的数组也许然后找到第二个数组的总和,但我不知道如何做到这一点。

一个更深入的解决方案:

 val prices = listOf(price2, price3, price4) val pricesParsed = prices.map {it.replace("$", "")}.map {it.toFloatOrNull() ?: 0f} println(pricesParsed.sum()) 

尝试这个:

 var sum = 0 for (s: String in prices) { //I replace all dollar signs to empty space val s1 = s.replace("$", "") //I replace Included price to 0 val s2 = s1.replace("INCLUDED", "0") //Change type to float val p = s2.toFloat() println(p) sum += p // NO var keyword! } println(sum) 

还可以这样做:

 var p:Float = 0.0f for(i :String in prices) { var s1 = i.replace("$","") var s2 = s1.replace("INCLUDED","0") p = p + s2.toFloat() }