개발하면서/etc

MessageFormat

오산돌구 2009. 11. 3. 23:42

필요는 사람을 집중하게 만든다.

C에서 sprintf기능을 하는게 Java에 있는지 알아보던중, MessageFormat이라는것을 알게되었다.

Java에서는 String의 개념이 있어서 '+'연산으로 다 가능해 그다지 쓸모는 없지만.....;; 그래도 알면 좋다는 신념아래

알아보기로 했다.


//C의 sprintf는
char form[50] = "age : %d, area : %s\n";
char output[200];
sprintf(output, form, 26, "오산");
printf("output : %s\n", output);

//뭐 이런식인데 Java의 MessageFormat은 String form = "age: {0}, area: {1}"; System.out.println(MessageFormat.format(form, new Object[]{age, area}));

 

다음과 같이 사용할수 있다.

import java.text.MessageFormat;
import java.util.Date;
import java.io.*;

public class Test{ // private static final String patternSimplifiedData = "내이름은 {0} 이고 나이는 {1}이다. 사는곳은 {2}이며 {3}를 꿈꾸고 있다."; // public static void main(String[] args) // { // String area = "오산"; // System.out.println(MessageFormat.format(patternSimplifiedData, // new Object[] { "강한구", "19", area, "간지나는 개발자"})); // } public static void main(String[] args) { Object[] arguments = { new Integer(7), new Date(System.currentTimeMillis()), "a disturbance in the Force" };
String result = MessageFormat.format( "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.", arguments); System.out.println("result :" + result);
} }

출력 :


더 많은 예제는 아래에 있다.

출처 : http://java.sun.com/j2se/1.4.2/docs/api/java/text/MessageFormat.html