사용할 JSON 파일이 있다. 여기에서 각각의 데이터 항목 'price'는 '20000' 이런 식으로 정수로 들어가 있다.
앱 화면에 "20000 원" 이렇게 써 있으면 너무 어색하고, 올바르지 않다. 원화 표기 기준에 맞춰서 "20,000 원" 이렇게 표현되어야 마음이 놓인다.
이런 경우에 사용할 간단한 함수를 만들었다. 컴마로 자릿수 구분하지 않는 나라에서는 컴마 자리에 온점..(이름 맞나..?)을 넣어주면 될 것 같다.
String wonCurrency(int price) {
return "${price.toString().replaceAllMapped(
RegExp(r'(\d)(?=(\d{3})+(?!\d))'),
(match) => '${match[1]},',
)} 원";
}
단위로 '원'도 붙여 주었다.
replaceAllMapped는 Flutter 안의 String Method로, 특정 패턴을 만족하는 대상에 대해서 변환을 수행한다.
https://api.flutter.dev/flutter/dart-core/String/replaceAllMapped.html
이렇게 금액 표현을 알아서 해 주는 라이브러리도 있다.
다양한 국가별 통화로 앱을 서비스 한다면 바로 써야겠지만, 지금 만드는 앱에서는 원화만 표시하기 때문에, 이렇게 작성해 봤다.
정규식은 너무 어렵다. 살려줘요.
-끝-