Scala 实现
题目描述:
说明:
输入描述:
输出描述:
示例
输入:
- bb1234aa
输出:
- 10
输入:
- bb12-34aa
输出:
- -31
说明:
- 1+2-(34)=-31
代码:
def main(args: Array[String]): Unit = {
val scan = new Scanner(System.in)
// 获取输入的内容
var s = scan.next()
// 避免数组下标越界,加个符号
var line = (s + "+").toCharArray
// 关闭资源
scan.close()
// 记录负号的位置
var subtract = 0
var flag = true
var sum = 0
for (i <- 0 until line.length) {
// 转型,将字母转成其他符号
if (('Z' >= line(i) & line(i) >= 'A') | ('z' >= line(i) & line(i) >= 'a')) {
line(i) = '+'
}
}
for (j <- 0 until line.length) {
breakable {
// 如果是正数,就置 flag 为 true,并跳出循环
if (line(j) == '+') {
flag = true
break
}
// 如果是负数,就更改 subtract 的值,置 flag 为 false,并跳出循环
if (line(j) == '-') {
subtract = j
flag = false
break
}
}
if (flag) {
// 正数
if (line(j) != '+') {
sum += line(j).toString.toInt
}
} else {
// 负数
if (line(j + 1) == '+' | line(j + 1) == '-' | j == line.length - 1) {
sum -= line.mkString.substring(subtract+1, j + 1).toString.toInt
}
}
}
println(sum)
}