>  기사  >  Java  >  텍스트 서식 지정을 위해 Java에서 MessageFormat 함수를 사용하는 방법

텍스트 서식 지정을 위해 Java에서 MessageFormat 함수를 사용하는 방법

WBOY
WBOY원래의
2023-06-26 16:12:103410검색

Java 언어의 지속적인 개발과 함께 Java에서 제공하는 다양한 API와 기능이 점점 더 풍부해지고 있습니다. 그중 MessageFormat 기능은 매우 실용적인 텍스트 서식 지정 도구입니다. MessageFormat 함수는 Java 프로그램에서 문자열 형식을 지정하고, 생성된 출력에서 ​​메시지의 자리 표시자를 자동으로 바꾸고, 로케일 정보를 유지하여 출력 콘텐츠를 더 정확하게 만들 수 있습니다. 이 문서에서는 MessageFormat 함수를 사용하여 텍스트 서식을 지정하는 방법을 자세히 설명합니다.

1. MessageFormat 함수란 무엇인가요? Java에서 MessageFormat은 복잡한 메시지의 형식을 지정하고 출력하는 방법을 제공하는 클래스입니다. MessageFormat을 사용하면 매개변수가 포함된 메시지를 정의한 다음 해당 메시지에 값을 전달하여 새 출력 메시지를 생성할 수 있습니다. MessageFormat 함수의 형식은 다음과 같습니다.

MessageFormat.format(String 패턴, Object ... 인수)

패턴 매개변수는 메시지의 형식을 지정하고 인수 매개변수는 메시지의 자리 표시자를 대체하는 매개변수 배열입니다. 실제 값으로. 예를 들어, 다음 코드에서는 MessageFormat 함수를 사용하여 이름, 나이 및 직업 문자열을 인사말로 형식화합니다.

String name = "Xiao Ming";

int age = 22; ";
String Greeting = MessageFormat.format("안녕하세요, {0}님, 귀하는 올해 {1}세이고 귀하의 직업은 {2}입니다.", 이름, 나이, 직업);
System.out.println ( 인사말);

출력 결과는 다음과 같습니다. 안녕하세요, Xiao Ming, 귀하는 22세의 프로그래머입니다.

2. MessageFormat 함수의 형식 지정자

MessageFormat 함수에서는 자리 표시자가 실제 값과 일치해야 하므로 형식 지정자를 사용해야 합니다. 형식 지정자는 대체 문자열의 형식을 결정하는 데 사용되는 마크업 구문입니다. 형식 지정자의 일반적인 구조는 다음과 같습니다:


{argument_index, format_type, format_style}

형식 지정자에는 매개변수 인덱스, 형식 유형 및 형식 스타일의 세 부분이 포함되어 있습니다. 매개변수 인덱스는 매개변수 배열에서 대체될 매개변수의 첨자를 지정하고, 형식 유형은 대체될 ​​매개변수의 데이터 유형을 지정하며, 형식 스타일은 매개변수의 형식을 지정하는 데 사용되는 문자열 형식을 지정합니다.

1. 매개변수 색인

매개변수 색인은 매개변수 배열에서 대체될 매개변수의 첨자를 지정하는 자리 표시자의 숫자를 나타냅니다. 예를 들어 위 코드에서 자리 표시자 "{0}"는 문자열 변수 이름인 첫 번째 매개변수를 지정합니다.


2. 형식 유형

형식 유형은 대체할 매개변수의 데이터 유형을 나타냅니다. MessageFormat 함수에서 지원하는 데이터 유형은 다음과 같습니다. 백분율


Currency :currency

    사용자 정의 유형:choice
  • 다음은 형식 유형을 사용하여 숫자 형식을 지정하고 이를 자리 표시자로 바꾸는 방법에 대한 예입니다.
  • int count = 123456;
  • String message = MessageFormat. format("사용자는 {0,number}명입니다.", count);
  • 출력 결과는 다음과 같습니다. 사용자는 123,456명입니다.
  • 3. 형식 스타일
형식 스타일은 매개변수 형식을 지정하는 데 사용되는 문자열 형식을 나타냅니다. 형식 스타일의 구문은 형식 유형에 따라 다릅니다. 다음 예에서는 형식 스타일을 사용하여 날짜와 시간을 지정된 형식으로 지정합니다.

Date now = new Date();

String message = MessageFormat.format("현재 시간은 {0,time, HH: mm:ss}. 날짜는 {0,date,yyyy-MM-dd}입니다. ", 지금);

출력 결과는 다음과 같습니다. 현재 시간은 14:58:30입니다. 날짜는 2021-02-16 입니다.

3. MessageFormat 기능 사용을 위한 실용적인 팁

1. 현지화 지원
Java에서 현지화는 다양한 언어, 문화 및 지역에 맞게 올바른 형식의 문자열을 제공하는 프로세스입니다. MessageFormat 함수는 지역화 정보를 고려할 수 있습니다. 예를 들어 아래 코드에서는 MessageFormat 함수를 사용하여 날짜 형식을 지정하고 지정된 지역 정보를 기반으로 현지화된 날짜를 생성합니다.

int year = 2021;
int day = 16; String result = MessageFormat.format("날짜는 {0, date, MMM d, yyyy}입니다.",

new GregorianCalendar(year, month - 1, day));

System.out.println(result);

출력 결과는 다음과 같습니다.

날짜는 2월입니다. 2021년 1월 16일

2. 형식 선택
특정 매개변수의 값을 기준으로 다른 형식을 선택해야 하는 경우 형식 유형 선택을 사용하여 특정 매개변수의 값을 기준으로 다른 값에 매핑할 수 있습니다. 예를 들어 다음 코드에서는 선택 형식 유형을 사용하여 점수를 성적에 매핑합니다.

double Score = 0.9;

String result = MessageFormat.format("이 학생의 점수는 {0,number ,percent} 등급은 다음과 같습니다: {0,choice,0#failure|0<60#failure|60<70#pass|70<80#medium|80<90#excellent|90<100#perfect |100# 전체 점수}. ",

    score);

System.out.println(result);

출력 결과는 다음과 같습니다.

이 학생의 점수는 90.00%입니다. 성적은 우수합니다.

3 이스케이프 자리 표시자 및 수정자
MessageFormat 함수를 사용할 때 특별한 의미가 있는 문자(예: '{', '}' 및 '#')를 이스케이프하려면 이중 중괄호 "{{" 및 "}}"를 사용해야 합니다. . 형식 지정자를 수정해야 하는 경우 수정자를 사용할 수 있습니다. 수정자는 서식 스타일을 추가 또는 제거하고 임의의 텍스트를 추가할 수 있습니다. 예를 들어 아래 코드에서는 수정자를 사용하여 출력 뒤에 느낌표를 추가합니다.

String name = "Xiao Ming";
String result = MessageFormat.format("Welcome, {0}!", new Object [] { 이름 });
System.out.println(result + "{0,choice,-1#?데이터를 확인하세요 |0#|1#!}");

출력 결과는 다음과 같습니다:

환영해요, 샤오밍!

이 문서에서는 형식 지정자, 현지화 지원, 형식 선택, 자리 표시자 및 수정자를 이스케이프 처리하는 등 텍스트 서식 지정에 MessageFormat 함수를 사용하는 방법을 설명합니다. 또한 MessageFormat 기능을 사용하여 USB 메시지 형식, HTML 페이지 형식, 이메일 형식 등을 지정할 수도 있습니다. MessageFormat 함수 사용 방법에 대한 자세한 내용은 공식 Java 설명서 및 API 설명서를 참조하세요. MessageFormat 함수는 Java 프로그래밍의 매우 실용적인 도구로, 텍스트와 메시지 형식을 보다 효율적으로 지정하는 데 도움이 됩니다.

위 내용은 텍스트 서식 지정을 위해 Java에서 MessageFormat 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.