Swift

정수값에 구분자를 넣어보자!!

진태우 2018. 8. 21. 16:55

정수값을 특정 문자로 구분하여 그룹을 만드려면 NumberFormatter를 사용해야 한다.

일반적으로 많이 사용되는 정수값에 원화의 구분자 넣어주는 작업을 예로 들어 코드를 작성해 보았다.

extension Formatter {
  static let withSeparator: NumberFormatter = {
    let formatter = NumberFormatter()
    formatter.groupingSeparator = ","
    formatter.numberStyle = .decimal
    return formatter
  }()
}


생성한 NumberFormatter에 groupingSeparator를 설정하여 grouping하는 구분기호를 설정해주고, 

numberStyle에는 십진수를 뜻하는 .decimal 값을 설정해주었다.

또한 extension을 통해 전역에서 쉽게 사용할 수 있도록 하였다.


그 후에 withSeparator 변수를 사용하여 정수를 separator로 grouping된 문자열로 변형해주는 formattedWithSeparator 변수를 만들어 준다.

이것도 전역에서 쉽게 사용 가능하도록 extension을 해주었다.

extension Integer {
  var formattedWithSeparator: String {
    return Formatter.withSeparator.string(for: self) ?? ""
  }
}


작성된 NumberFormatter의 사용법은 아래와 같다.

let money = 1000000
let separatedMoney = money.formattedWithSeparator    // 1,000,000


groupingSeparator, numberStyle에는 다른 값을 설정하여 원하는 방식으로 구현하면 된다.

숫자의 Formatter뿐만 아니라 소수점, 반올림 등 여러가지 숫자의 형태를 핸들링 할 수 있으니 아래 공식 홈피에서 찾아보면 될 것 같다.



Apple 공식 문서 - NumberFormatter

Apple 공식 문서 - NumberFormatter.Style