У меня есть строка "-3 + 4 - 1 + 1 + 12 - 5 + 6", и я хочу найти решение этого уравнения. И защитите его от нежелательных символов (например, abc или #).
Решение этого уравнения верное, но я не могу обработать исключение, когда встречаются другие знаки в строке. Я использую Scala и сопоставление с образцом, это новая тема для меня, и я не уверен, почему это не работает.
object Main extends App {
val numberString = "-3 + 4 - 1 + 1 + 12 - 5 + 6";
val abc: List[String] = numberString.split("\\s+").toList
var temp = abc.head.toInt
for (i <- 0 until abc.length) {
abc(i) match {
case "+" => temp += abc(i+1).toInt
case "-" => temp -= abc(i+1).toInt
case x if -100 to 100 contains x.toInt=> println("im a number ")
case _ => throw new Exception("wrong opperator")
}
}
println(temp);
Вывод при
numberString = "-3 + 4 # - 1 + 1 + 12 - abc 5 + 6";
должен выдавать неправильный оператор Exception, но у меня есть:
Exception in thread "main" im a number
im a number
java.lang.NumberFormatException: For input string: "#"