Java int 정수형 숫자 원으로 환산 방법(3자리마다 , 표기)
Java에서 `int` 형 숫자를 한국 돈으로 표기할 때 3자리마다 쉼표를 추가하는 방법에 대해 자세히 설명하겠습니다. 이를 위해 `NumberFormat` 클래스와 `DecimalFormat` 클래스를 사용하는 방법, 그리고 사용자 정의 함수를 작성하는 방법을 소개하겠습니다. 이 과정은 다음과 같은 단계로 진행됩니다:
### 1. `NumberFormat` 클래스를 사용한 방법
#### 1.1. `NumberFormat` 클래스 소개
`NumberFormat` 클래스는 숫자를 로케일에 따라 형식화할 수 있는 기능을 제공합니다. `NumberFormat` 클래스는 `getInstance` 또는 `getCurrencyInstance` 메서드를 사용하여 인스턴스를 생성할 수 있습니다. 한국 원화(KRW)를 기준으로 숫자를 형식화할 때는 `Locale.KOREA`를 사용하면 됩니다.
#### 1.2. 기본 예제
다음은 `NumberFormat` 클래스를 사용하여 숫자를 한국 돈으로 형식화하는 간단한 예제입니다:
```java
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormatExample {
public static void main(String[] args) {
int amount = 123456789;
// NumberFormat 인스턴스 생성
NumberFormat numberFormat = NumberFormat.getInstance(Locale.KOREA);
// 형식화된 문자열 출력
String formattedAmount = numberFormat.format(amount);
System.out.println(formattedAmount); // 출력: 123,456,789
}
}
```
위의 코드에서 `NumberFormat.getInstance(Locale.KOREA)`를 사용하여 한국 로케일에 맞는 `NumberFormat` 인스턴스를 생성하고, `format` 메서드를 사용하여 숫자를 형식화했습니다.
#### 1.3. 통화 형식 추가
한국 돈의 경우, 숫자에 통화 기호(₩)를 추가하여 표시할 수 있습니다. 이를 위해 `getCurrencyInstance` 메서드를 사용할 수 있습니다:
```java
import java.text.NumberFormat;
import java.util.Locale;
public class CurrencyFormatExample {
public static void main(String[] args) {
int amount = 123456789;
// Currency 인스턴스 생성
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.KOREA);
// 형식화된 문자열 출력
String formattedAmount = currencyFormat.format(amount);
System.out.println(formattedAmount); // 출력: ₩123,456,789
}
}
```
이 코드에서는 `NumberFormat.getCurrencyInstance(Locale.KOREA)`를 사용하여 통화 형식의 `NumberFormat` 인스턴스를 생성하고, `format` 메서드를 사용하여 숫자를 원화 통화 형식으로 형식화했습니다.
### 2. `DecimalFormat` 클래스를 사용한 방법
#### 2.1. `DecimalFormat` 클래스 소개
`DecimalFormat` 클래스는 숫자를 특정 패턴에 맞게 형식화할 수 있는 강력한 도구입니다. 이 클래스는 `applyPattern` 메서드를 사용하여 형식 패턴을 설정할 수 있습니다.
#### 2.2. 기본 예제
다음은 `DecimalFormat` 클래스를 사용하여 숫자를 3자리마다 쉼표를 추가하는 형식으로 변환하는 예제입니다:
```java
import java.text.DecimalFormat;
public class DecimalFormatExample {
public static void main(String[] args) {
int amount = 123456789;
// DecimalFormat 인스턴스 생성 및 패턴 설정
DecimalFormat decimalFormat = new DecimalFormat("#,###");
// 형식화된 문자열 출력
String formattedAmount = decimalFormat.format(amount);
System.out.println(formattedAmount); // 출력: 123,456,789
}
}
```
위의 코드에서 `DecimalFormat("#,###")`을 사용하여 3자리마다 쉼표를 추가하는 형식 패턴을 설정했습니다.
#### 2.3. 통화 기호 추가
통화 기호를 추가하려면 패턴에 통화 기호를 포함시킬 수 있습니다. 한국 원화를 나타내기 위해 `₩` 기호를 패턴에 추가할 수 있습니다:
```java
import java.text.DecimalFormat;
public class CurrencyDecimalFormatExample {
public static void main(String[] args) {
int amount = 123456789;
// DecimalFormat 인스턴스 생성 및 패턴 설정
DecimalFormat decimalFormat = new DecimalFormat("₩#,###");
// 형식화된 문자열 출력
String formattedAmount = decimalFormat.format(amount);
System.out.println(formattedAmount); // 출력: ₩123,456,789
}
}
```
이 예제에서는 `₩#,###` 패턴을 사용하여 숫자 앞에 원화 기호를 추가했습니다.
### 3. 사용자 정의 함수 사용
#### 3.1. 기본 개념
사용자 정의 함수를 사용하여 숫자를 3자리마다 쉼표를 추가하는 형식으로 변환할 수 있습니다. 이를 위해 문자열 조작을 활용할 수 있습니다.
#### 3.2. 기본 예제
다음은 문자열 조작을 통해 숫자를 3자리마다 쉼표를 추가하는 형식으로 변환하는 예제입니다:
```java
public class CustomFormatExample {
public static void main(String[] args) {
int amount = 123456789;
String formattedAmount = formatWithCommas(amount);
System.out.println(formattedAmount); // 출력: 123,456,789
}
public static String formatWithCommas(int amount) {
StringBuilder sb = new StringBuilder();
String amountStr = Integer.toString(amount);
int length = amountStr.length();
int commaCount = (length - 1) / 3;
int index = 0;
for (int i = 0; i < length; i++) {
sb.append(amountStr.charAt(i));
if ((length - i - 1) % 3 == 0 && index < commaCount) {
sb.append(',');
index++;
}
}
return sb.toString();
}
}
```
위의 예제에서는 `StringBuilder`와 반복문을 사용하여 숫자를 3자리마다 쉼표를 추가하는 형식으로 변환했습니다.
### 4. 고급 사용자 정의 함수
#### 4.1. 정수 및 소수 처리
정수 뿐만 아니라 소수를 포함한 숫자를 처리하는 사용자 정의 함수를 작성할 수 있습니다. 다음은 소수를 포함한 숫자를 3자리마다 쉼표를 추가하는 형식으로 변환하는 예제입니다:
```java
public class AdvancedCustomFormatExample {
public static void main(String[] args) {
double amount = 123456789.987;
String formattedAmount = formatWithCommas(amount);
System.out.println(formattedAmount); // 출력: 123,456,789.987
}
public static String formatWithCommas(double amount) {
String[] parts = Double.toString(amount).split("\\.");
String integerPart = parts[0];
String decimalPart = parts.length > 1 ? parts[1] : "";
StringBuilder sb = new StringBuilder();
int length = integerPart.length();
int commaCount = (length - 1) / 3;
int index = 0;
for (int i = 0; i < length; i++) {
sb.append(integerPart.charAt(i));
if ((length - i - 1) % 3 == 0 && index < commaCount) {
sb.append(',');
index++;
}
}
if (!decimalPart.isEmpty()) {
sb.append('.').append(decimalPart);
}
return sb.toString();
}
}
```
위의 예제에서는 `split` 메서드를 사용하여 정수 부분과 소수 부분을 분리하고, 각각을 처리하여 다시 결합했습니다.
### 5. 결론
Java에서 `int`형 숫자를 한국 돈으로 표기할 때 3자리마다 쉼표를 추가하는 방법에는 `NumberFormat` 클래스, `DecimalFormat` 클래스, 그리고 사용자 정의 함수를 사용하는 방법이 있습니다. 각각의 방법은 상황에 따라 장단점이 있으므로, 적절한 방법을 선택하여 사용할 수 있습니다.
- **`NumberFormat` 클래스**는 로케일에 따른 숫자 형식을 쉽게 적용할 수 있으며, 통화 형식도 지원합니다.
- **`DecimalFormat` 클래스**는 패턴을 사용하여 숫자를 세밀하게 형식화할 수 있는 강력한 도구입니다.
- **사용자 정의 함수**는 커스터마이징이 가능하며, 정수와 소수를 모두 처리할 수 있습니다.
이러한 방법들을 활용하면 다양한 상황에서 숫자를 한국 돈 형식으로 변환하여 사용자에게 친숙한 형식으로 보여줄 수 있습니다.
'게으른 개발자의 끄적거림' 카테고리의 다른 글
CSS 깨짐 현상 해결 방법 (0) | 2024.05.22 |
---|---|
Java equals(), ==, contains() 예시 및 차이점 (0) | 2024.05.21 |
Java 환율 계산(int형을 달러, 원으로 환산) (0) | 2024.05.20 |
jpg, png, jpeg 파일 차이점 (0) | 2024.05.16 |
xml이란? xml완벽 정리 (0) | 2024.05.13 |