Java 메시지 형식
-
MessageFormat
을 활용하여 큰따옴표를 사용하여 메시지 형식 지정 -
MessageFormat
을 활용하는Unicode
문자를 사용하여 메시지 형식 지정 -
MessageFormat
을 활용하는 이스케이프 시퀀스를 사용하여 메시지 형식 지정 -
MessageFormat
을 활용하여 문자를 교체하여 메시지 형식 지정
이 튜토리얼에서는 Java API에서 제공하는 Java MessageFormat
클래스를 사용하여 메시지 형식을 지정하는 방법을 배웁니다. 형식화는 문자와 문자열을 메시지에 동적으로 삽입하는 프로세스이며 MessageFormat
은 이 기능을 제공합니다.
MessageFormat
은 개체 인수를 사용하여 개체 인수가 삽입된 위치를 보여주는 패턴을 사용하여 형식이 지정된 문자열을 형성합니다.
객체 인수는 MessageFormat
객체 매개변수에 전달된 위치를 기반으로 패턴에 삽입됩니다. 메시지 형식을 지정하는 방법을 배우기 위해 MessageFormat
의 정적 format()
메서드를 사용합니다.
format()
메소드에 전달된 첫 번째 매개변수는 문자열에 동적으로 삽입하려는 문자열 지정자를 기반으로 하는 객체 인수가 뒤따르는 패턴입니다. 패턴에 요소를 삽입할 때 MessageFormat
에 의해 다르게 해석되는 특정 문자를 사용할 수 있으며, 이는 예상과 다른 결과를 초래할 수 있습니다.
예를 들어 MessageFormat
을 사용하여 형식이 지정된 메시지 내에서 you're
와 같은 문자열에 작은따옴표를 사용하면 youre
문자열이 생성됩니다. 작은 따옴표는 형식이 지정되지 않은 섹션을 나타내는 데 사용되며 다음 예에서 메시지의 나머지 패턴은 형식이 지정되지 않았습니다.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you're turning {1} years old today", name, age);
System.out.println(message);
}
}
출력:
Hello John, youre turning {1} years old today
다음 섹션에서는 메시지에 작은 따옴표를 삽입하여 패턴의 형식이 성공적으로 지정되도록 하는 데 사용할 수 있는 네 가지 방법을 다룹니다.
MessageFormat
을 활용하여 큰따옴표를 사용하여 메시지 형식 지정
MessageFormat
을 사용하여 형식이 지정된 메시지에 작은 따옴표를 추가하려면 아래와 같이 문자열에 작은 따옴표 '
대신 두 개의 작은 따옴표 ''
를 사용해야 합니다.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you''re turning {1} years old today", name, age);
System.out.println(message);
}
}
출력:
Hello John, you're turning 30 years old today
큰따옴표를 추가한 후 작은따옴표가 삽입되고 나머지 패턴은 올바른 값으로 서식이 지정됩니다.
MessageFormat
을 활용하는 Unicode
문자를 사용하여 메시지 형식 지정
모든 문자에는 유니코드 표현이 있습니다. Java는 유니코드 문자를 읽을 수 있으므로 작은 따옴표의 유니코드 표현을 사용하여 문자열에 작은 따옴표를 삽입할 수 있습니다.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you\u2019re turning {1} years old today", name, age);
System.out.println(message);
}
}
출력:
Hello John, you're turning 30 years old today
유니코드 문자 \u2019
는 문자열에 작은따옴표를 추가하고 메시지의 나머지 패턴은 올바른 값으로 형식이 지정됩니다.
MessageFormat
을 활용하는 이스케이프 시퀀스를 사용하여 메시지 형식 지정
이 방법은 큰따옴표를 사용하는 방법과 유사하지만 일련의 문자를 삽입하기 위해 앞에 백슬래시가 있는 문자인 이스케이프 시퀀스 \
를 사용합니다. 아래와 같이 패턴에 두 개의 따옴표 이스케이프 시퀀스를 삽입하여 작은 따옴표를 삽입할 수 있습니다.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message =
MessageFormat.format("Hello {0}, you\'\'re turning {1} years old today", name, age);
System.out.println(message);
}
}
출력:
Hello John, you're turning 30 years old today
MessageFormat
을 활용하여 문자를 교체하여 메시지 형식 지정
문자열로 작업하기 때문에 문자열을 동일하게 유지하고 replaceAll()
메서드를 사용하여 작은 따옴표를 큰 따옴표로 교체하여 마침내 문자열에 작은 따옴표를 추가할 수 있습니다.
import java.text.MessageFormat;
public class FormatString {
public static void main(String[] args) {
String name = "John";
long age = 30;
String message = MessageFormat.format(
"Hello {0}, you're turning {1} years old today".replaceAll("'", "''"), name, age);
System.out.println(message);
}
}
출력:
Hello John, you're turning 30 years old today
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub