[SwiftUI, Swift] String型の金額データを円とコンマ付きに変えるFunctionの作り方

まず最初に、String型の金額データ(例:Price: 8000)があるとする。
そのStringデータを、アプリ内で表示、使用するために、円マーク「¥」と3桁のところにコンマを装備したい。
そのためには、まずFunctionを作る。下記がそのコード。このサイトのコードを使用。https://jp-seemore.com/app/15410/


func formatUserInput(input: String, pattern: String) -> String? {
        let formatter = NumberFormatter()
        formatter.positiveFormat = pattern
        if let number = formatter.number(from: input) {
            return formatter.string(from: number)
        }
        return nil
    }

まずは、金額データがString型であるという想定であるので、インプットはString型で、patternは、”¥#,###"とする。
View内で使う場合は、下記のようにText内でfunctionを呼び出して、使う。

Text(formatUserInput(input: stringPrice, pattern: "¥#,###")

また、このfunctionをアプリ内の違うView内でも使いたい場合は、下記のようにClassを作って、その中でfunctionを作る。
その時に、"class func"としないと、functionが呼び出せない。

import Foundation

class CurrencyUtils {
    class func formatUserInput(input: String, pattern: String) -> String? {
        let formatter = NumberFormatter()
        formatter.positiveFormat = pattern
        if let number = formatter.number(from: input) {
            return formatter.string(from: number)
        }
        return nil
    }
}

classとstructの違いやオブジェクト指向、クロージャーなどを理解することが、Swiftを進めていく上で重要だと思う。これから少しずつ理解していきたい。

この記事が気に入ったらサポートをしてみませんか?