Java 문자열 형식 지정

JavaBeginner
지금 연습하기

소개

Java 에서 String.format() 메서드는 형식 문자열, 로케일 (locale), 그리고 인수를 사용하여 문자열을 형식화합니다. 형식 문자열은 인수가 변환되어야 하는 형식을 지정하고, 로케일은 언어나 지역과 같은 사용해야 하는 설정을 지정합니다. 이 랩에서는 String.format() 메서드를 사용하여 문자열을 형식화하는 방법에 대해 자세히 알아보겠습니다.

간단한 문자열 형식 지정 예제 만들기

이 단계에서는 String.format() 메서드를 사용하여 문자열을 형식화하는 기본적인 예제를 만들 것입니다.

  1. ~/project 디렉토리에 SimpleFormatExample.java라는 새 Java 파일을 생성합니다.
  2. SimpleFormatExample 클래스의 main() 메서드에서 formattedString이라는 문자열 변수를 생성하고, 다음 인수를 사용하여 String.format()을 호출한 결과로 설정합니다.
    1. 형식 문자열로 "Hello, %s!" 문자열을 사용합니다.
    2. 인수로 "world" 문자열을 사용합니다.
  3. System.out.println()을 사용하여 formattedString의 값을 출력합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("Hello, %s!", "world");
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

Hello, world!

형식 문자열에서 인수 사용하기

이 단계에서는 출력 내용을 사용자 정의하기 위해 형식 문자열에서 인수를 사용하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. formattedString 변수를 수정하여 표시할 문자 수를 위한 인수를 사용합니다. 형식 문자열의 "s"".%d-s"로 바꿔서 표시할 최대 문자 수를 지정합니다.
  3. 형식 문자열 뒤에 표시할 최대 문자 수를 나타내는 정수 인수를 추가합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("Hello, %d-s!", 5);
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

Hello, 5-s!

플래그를 사용하여 형식 지정 동작 수정하기

이 단계에서는 플래그를 사용하여 형식 문자열의 동작을 수정하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. % 기호 뒤에 빼기 기호 (-) 를 추가하여 텍스트를 왼쪽 정렬하도록 형식 문자열을 수정합니다.
  3. 출력의 최소 너비를 지정하기 위해 형식 문자열에 인수를 추가합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("%-10s, world!", "Hello");
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

Hello     , world!

변환 문자를 사용하여 다양한 데이터 유형 형식 지정하기

이 단계에서는 다양한 변환 문자를 사용하여 다양한 데이터 유형을 형식 지정하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. %f 변환 문자를 사용하여 부동 소수점 숫자를 포함하도록 형식 문자열을 수정합니다.
  3. 형식 문자열 뒤에 부동 소수점 숫자 인수를 추가합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The value of pi is approximately %f", 3.14159265359);
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

The value of pi is approximately 3.141593

정밀도 수정자를 사용하여 자릿수 제어하기

이 단계에서는 정밀도 수정자를 사용하여 형식화된 출력에 표시되는 자릿수를 제어하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. %f 변환 문자를 사용하여 부동 소수점 숫자를 포함하도록 형식 문자열을 수정합니다. 소수점 뒤에 두 자리만 표시하도록 정밀도 수정자 (%.2f) 를 추가합니다.
  3. 형식 문자열 뒤에 부동 소수점 숫자 인수를 추가합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The value of pi is approximately %.2f", 3.14159265359);
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

The value of pi is approximately 3.14

로케일을 사용하여 형식 설정 사용자 정의하기

이 단계에서는 언어 또는 지역과 같은 형식 설정을 사용자 정의하기 위해 로케일 (locale) 을 사용하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. 숫자와 %d 변환 문자를 포함하도록 형식 문자열을 수정합니다.
  3. 형식 문자열 뒤에 정수 인수를 추가합니다.
  4. String.format() 메서드에 두 번째 인수를 추가하여 사용할 로케일을 지정합니다. Locale.FRENCH 상수를 사용하여 프랑스어를 지정합니다.
  5. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  6. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  7. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

import java.util.Locale;

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format(Locale.FRENCH, "Le nombre est %d", 123456789);
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

Le nombre est 123456789

날짜 및 시간 값 형식 지정

이 단계에서는 String.format() 메서드를 사용하여 날짜 및 시간 값을 형식 지정하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. 캘린더 인스턴스를 생성하는 데 사용할 java.util.Calendar 클래스에 대한 import 문을 추가합니다.
  3. Calendar.getInstance()를 사용하여 새 Calendar 인스턴스를 생성합니다.
  4. %tD 변환 문자를 사용하여 날짜를 포함하도록 형식 문자열을 수정합니다.
  5. calendar.getTime() 메서드를 사용하여 Date 값을 얻어 형식 문자열 뒤에 Date 인수를 추가합니다.
  6. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  7. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  8. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

import java.util.Calendar;
import java.util.Date;

public class SimpleFormatExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        String formattedString = String.format("%tD", calendar.getTime());
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

08/22/21

대문자 및 소문자를 사용한 형식 지정

이 단계에서는 %S%s 변환 문자를 사용하여 문자열을 각각 대문자 및 소문자로 형식 지정하는 방법을 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. %S 변환 문자를 사용하여 문자열을 대문자로 형식 지정하도록 형식 문자열을 수정합니다.
  3. %s 변환 문자를 사용하여 문자열을 소문자로 형식 지정하도록 두 번째 문자열을 포함하도록 형식 문자열을 수정합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The word %S is in uppercase and %s is in lowercase", "HELLO", "world");
        System.out.println(formattedString);
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

The word HELLO is in uppercase and world is in lowercase

예외 처리

이 단계에서는 String.format() 메서드를 사용할 때 발생할 수 있는 예외 (exception) 와 이를 처리하는 방법에 대해 배우겠습니다.

  1. 편집기에서 SimpleFormatExample.java 파일을 엽니다.
  2. %c 변환 문자를 사용하여 문자를 포함하도록 형식 문자열을 수정합니다.
  3. 형식 문자열 뒤에 문자 인수를 추가합니다.
  4. SimpleFormatExample.java 파일을 저장하고 닫습니다.
  5. 터미널에서 다음 명령을 실행하여 SimpleFormatExample.java 파일을 컴파일합니다: javac SimpleFormatExample.java.
  6. 그런 다음, java SimpleFormatExample 명령을 사용하여 클래스 파일을 실행합니다.

다음은 수정된 코드입니다:

public class SimpleFormatExample {
    public static void main(String[] args) {
        try {
            String formattedString = String.format("The character is %c", "too long");
            System.out.println(formattedString);
        } catch (Exception e) {
            System.out.println("An exception occurred: " + e.getMessage());
        }
    }
}

코드를 실행하면 다음과 같은 출력을 볼 수 있습니다:

An exception occurred: UString.format: '%c' != java.base/java.lang.String

요약

이 랩에서는 Java 에서 String.format() 메서드를 사용하여 문자열을 형식 지정하는 방법을 배웠습니다. 먼저 형식 문자열과 인수를 사용하여 문자열을 생성하는 간단한 예제를 만들었습니다. 그런 다음, 다양한 변환 문자를 사용하여 문자열을 형식 지정하는 방법, 그리고 출력을 제어하기 위한 정밀도 수정자 (precision modifiers) 와 플래그 (flags) 를 사용하는 방법을 배웠습니다. 또한 로케일 (locales) 을 사용하여 형식 설정 (formatting settings) 을 사용자 정의하고 날짜 및 시간 값을 형식 지정하는 방법도 배웠습니다. 마지막으로, String.format() 메서드를 사용할 때 발생할 수 있는 몇 가지 예외 (exceptions) 와 이를 처리하는 방법에 대해 논의했습니다.