2010-05-11 1 views

답변

15

String.format은 바로 Formatter의 바로 가기이며 "printf-style"형식 지정자입니다. 반면에 MessageFormat은 연결된 설명서에 설명 된대로 다른 형식 지정 규칙을 사용합니다. 및 제 "레이아웃 조정 및 위치, 수치, 문자열에 대한 일반적인 포맷, 날짜/시간 데이터, 로케일 특정 출력"

처음 사용할 는 "언어 중립적 방식으로 연결된 메세지를".

50

넣어 간단하게 주요 차이점은 형식 문자열에 있습니다

  1. MessageFormat.format() 서식 캐릭터 라인 인수의 위치를 ​​허용 (예 : {0}, {1}.). 예 :

    "This is year {0}!"

    개발자들이 있기 때문에, 대부분의 경우, 현재 Locale에 따라 인식 형식의, 인수 유형에 대해 걱정할 필요가 없습니다.

  2. String.format() 형식 문자열은 인수 형식 지정자를 허용합니다 (예 : 숫자의 경우 %d, 문자열의 경우 %s). 예 :

    "This is year %d!"

    String.format()는 일반적으로 당신에게 인수가이 유형 지정자로 지정할 수있는 많은 옵션 덕분에 표시되는 방법을 더 잘 제어 할 수 있습니다. 예를 들어, 형식 문자열 "%-6.2f"은 왼쪽 정렬 된 부동 소수점 수를 min으로 표시하도록 지정합니다. 너비 6 자 및 소수 자릿수 2 자의 정밀도.

두 가지 방법 모두의 javadoc에서 자세한 내용을 확인하십시오.

+0

대단히 감사합니다. – gokareless

+1

"{0, number, integer}"와 같은 MessageFormat.format의 형식을 제어 할 수 있습니다. –

관련 문제