東陽帳

日々の生活を色々なツールや製品で改善していく様子を記録

【Swift】String型(文字列)の計算式を計算する【iOS】

 

はじめに

今回はSwiftでString型(文字列)の計算式を実際に計算する方法について記載します。

Swift5で動作確認しています。

ちなみに M1 Mac mini を使用していますが、ビルドもシミュレータの動作も速くていい感じです。

 

実装例

実装例は以下のとおりです。ここでは NSExpression がポイントです。

let operand1: String = "1"

let operand2: String = "2"

let binaryOperator: String = "+"

let equation: String = operand1 + binaryOperator + operand2

print(equation)    // 1+2

 

let expression = NSExpression(format: equation)

let answer = expression.expressionValue(with: nil, context: nil) as! Int

print(answer)    // 3

 

 

上記では answer をInt型にしていますが、Double型にすれば小数点の計算もできます。

let operand1: String = "1.1"

let operand2: String = "2.2"

let binaryOperator: String = "*"

let equation: String = operand1 + binaryOperator + operand2

print(equation)    // 1.1*2.2

 

let expression = NSExpression(format: equation)

let answer = expression.expressionValue(with: nil, context: nil) as! Double

print(answer)    // 2.42

 

最後に

今回は、文字列の数式を実際に計算する方法を記載しました。

詳細は公式ドキュメントを参照してください。 

 

developer.apple.com

 

参考になると幸いです。