kotlin - 总结运算符前后的所有数字登录字符串用户输入
问题描述
我是编程新手,刚开始使用 kotlin。我已经被这个问题困扰了几天,我真的需要一些帮助。我正在尝试以这样的格式读取字符串的用户输入 3 + 2 + 1
,遍历字符串以及任何有运算符的地方,将运算符符号前后的数字相加。所以上面3 + 2 + 1
应该输出6
。这是我的代码片段
fun main() {
val userInput = readLine()!!.split(" ")
var sum = 0
for (i in 0 until userInput.size) {
if (userInput.get(i) == "+"){
sum += userInput.get(i-1).toInt() + userInput.get(i+1).toInt()
}
}
println(sum )
}
我的代码一直有效,直到将数字相加为止。它在运算符之后重复下一个数字,因此使用上面的示例3 + 2 + 1
输出。我很困惑,不知道该怎么办。8
3 + 2 + 2 + 1
解决方案
尽量不要每次都增加 sum 的值,而是重写参与 sum 的最后一个数字。就像这样:
你有这样的情况:1 + 2 + 3 + 4
拆分它们
现在你有了数组
[1, +, 2, +, 3, +, 4]
然后你迭代这个数组,坚持第一个加号并对值求和。
用总和重写第二个总和值。
现在你有了新数组
[1, +, 3, +, 3, +, 4]
在循环结束时,您将拥有这个数组
[1, +, 3, +, 6, +, 10]
你的总和是数组的最后一个元素
推荐阅读
- node.js - 文件大小(6003804160)大于可能的缓冲区:节点中的 2147483647
- postgresql - 如何在 Rust 上使用 Actix 创建 POST 方法?
- json - 每 30 分钟将 Json 导入 Firebase 实时数据库
- css - 引导进度标签未完全显示
- node.js - 如何读取标签内的文本
- kubernetes - 如何在两个子图表上应用 custom-values.yaml,这是主图表的一部分
- c# - MSTest 每次都调用构造函数
- php - 有没有办法使用 laravel 和 vue js 上传文件夹?
- node.js - 为什么 null 大于或等于零在 node.js 中为真?
- javascript - 共享相同属性的父子 Web 组件