"또한 String.format 방법 에 대해서도 말씀드리고 싶습니다 ."
" String 클래스 의 정적 메서드 이지만 매우 유용합니다. 우회적으로 접근하겠습니다."
"텍스트 한 줄에 여러 변수를 표시해야 한다면 어떻게 하시겠습니까?"
"무슨 문자?"
"예를 들면 다음과 같습니다."
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}
"나는 다음과 같이 할 것입니다."
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
System.out.println("User = {name: " + name + ", age: " + age + " years, friend: " + friend + ", weight: " + weight + " kg.}");
"잘 읽히지 않습니까?"
"괜찮은 것 같아."
"하지만 변수 이름이 길거나 데이터를 가져오기 위해 메서드를 호출해야 하는 경우 가독성이 좋지 않을 것입니다."
System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");
"글쎄, 그렇다면, 그래, 읽기 쉽지 않을거야."
"사실 이것은 실제 프로그램에서 항상 발생하므로 String.format 방법으로 삶을 단순화할 수 있는 방법을 보여주고 싶습니다."
"빨리 말해줘, 이게 무슨 마법의 수법이야?"
"위 코드는 다음과 같이 작성할 수 있습니다."
String text = String.format("User = {name: %s, age: %d years, friend: %s, weight: %d kg.}",
user.getName(), user.getAge(), user.getFriends().get(0), user.getExtraInformation().getWeight())
System.out.println(text);
" String.format 메서드의 첫 번째 매개변수는 값을 넣을 때마다 특수 문자(%s, %d)를 포함하는 형식 문자열입니다."
"형식 문자열 다음에 %s 및 %d 문자를 대체할 값을 전달합니다."
"문자열을 삽입해야 하는 경우 %s를 쓰고, 숫자가 필요한 경우 %d를 사용합니다."
"예제에서 이것을 보는 것이 더 쉬울 것입니다:"
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
s는 «a = 1, b = 4, c = 3»과 같습니다.
"네, 아주 편리합니다."
"또한 다음과 같이 할 수도 있습니다."
int a = -1, b = 4, c = 3;
String template;
if (a < 0)
template = "Warning! a = %d, b = %d, c = %d";
else
template = "a = %d, b = %d, c = %d";
System.out.println(String.format(template, a, b, c) );
Warning! a = -1, b = 4, c = 3
"음. 정말 유용한 방법이군. 고마워, 엘리."
"포맷 방법과 함께 다른 데이터 유형을 사용하려는 경우 다음 표가 도움이 될 것입니다."
상징 | 유형 |
---|---|
%에스 | 끈 |
%디 | 정수: int, long 등 |
%에프 | 실수: float, double |
%비 | 부울 |
%씨 | 숯 |
%티 | 날짜 |
%% | 백분율 기호 % |
"실제로 이러한 형식 지정자에는 고유한 설정과 하위 설정도 있습니다."
"하지만 시작하기에 충분합니다. 그렇지 않은 경우 공식 문서에 대한 링크는 다음과 같습니다."