정수 세 자리마다 화페단위처럼 쉼표를 넣고 싶다면 Format 클래스를 이용하시면 됩니다.

 

 

Format 클래스는 java.text 패키지에 포함되어 있는데,

숫자 형식을 위해 DecimalFormat,

날짜 형식을 위해 SimpleDateFormat,

매개 변수화된 문자열 형식을 위해 MessageFormat 등을 제공합니다.


 

1. DecimalFormat - 숫자 형식

DecimalFormat은 숫자 데이터를 원하는 형식으로 표현하기 위해 패턴을 사용하는데 다음 표는 패턴의 예를 보여줍니다.

 

적용할 패턴을 찾았으면 DecimalFormat 생성자 파라미터로 정해서 객체를 생성하면 됩니다. 그리고 나서 format() 메서드를 호출해서 패턴이 적용된 문자열을 얻으면 됩니다.

// 이렇게 사용 하면 됨
DecimalFormat df = new DecimalFormat("#,###.0");
String result = df.format(1000000000.969);


- 사용 예 -

import java.text.DecimalFormat;
 
public class DecimalExam {
    public static void main(String[] args) {
        double num = 1234567.89;
        
        DecimalFormat df = new DecimalFormat("0");
        System.out.println(df.format(num));
        
        // 소수점
        df = new DecimalFormat("#.#");
        System.out.println(df.format(num));
 
        // 소수점 + 0,000
        df = new DecimalFormat("#,###.0");
        System.out.println(df.format(num));
        
        // 돈표시 + 0,000
        df = new DecimalFormat("\u00A4 #,###");
        System.out.println(df.format(num));
        
    }
}

 

 

 

 

 

2. SimpleDateFormat - 날짜 형식

Date 클래스의 toString() 메서드는 영문으로된 날짜를 리턴하는데 만약 특정 문자열 포맷으로 얻고 싶다면 java.text.SimpleDateFormat 클래스를 이용하면 됩니다.

 

- 사용 예 -

import java.text.SimpleDateFormat;
import java.util.Date;
 
public class SimpleDateFormatExam {
    public static void main(String[] args) {
        Date now = new Date();
        
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(sdf.format(now));
        
        sdf = new SimpleDateFormat("yyyy년 MM월 dd일");
        System.out.println(sdf.format(now));
        
        sdf = new SimpleDateFormat("yyyy년의 D번째 날");
        System.out.println(sdf.format(now));
        
    }
}

 

 

 

 

3. MessageFormat - 매개 변수화된 문자열 형식

데이터를 파일에 저장하거나, 네트워크로 전송할 때, 그리고 데이터베이스 SQL문을 작성할 때 등 많은 부분에서 일정한 형식의 문자열을 사용합니다. MessageFormat 클래스를 사용하면 문자열에 데이터가 들어갈 자리를 표시해 두고, 프로그램이 동적으로 데이터를 삽입하여 문자열을 완성시킬 수 있습니다.

 

MessageFormat은 정적 메서드 format() 을 호출하여 완성된 문자열을 리턴시킵니다. format() 메서드의 첫 번째 파라미터는 매개 변수화된 문자열을 지정하고, 두 번째 이후의 파라미터는 인덱스 순서에 맞게 값을 나열시키면 됩니다. 

 

- 사용 예 -

import java.text.MessageFormat;
 
public class MessageFormatExam {
    public static void main(String[] args) {
        String id = "apple";
        String name = "iOS";
        String tel = "010-0101-1010";
        
        String text = "회원 ID: {0} \n이름: {1} \n회원 전화: {2}";
        String result1 = MessageFormat.format(text, id, name, tel);
        System.out.println(result1);
        System.out.println();
 
        String sql = "insert into member values({0}, {1}, {2})";
        Object[] arguments = {id, name, tel};
        String result2 = MessageFormat.format(sql, arguments);
        System.out.println(result2);
        
    }
}