English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 프로세스 제어

Java 배열

Java 대상적 프로그래밍(I)

Java 대상적 프로그래밍(II)

Java 대상적 프로그래밍(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 셋

Java Set 셋

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java String format() 사용 방법 및 예제

Java String(문자열) 메서드

Java String format() 메서드는 전달된 파라미터에 따라 포맷된 문자열을 반환합니다.

String format() 메서드의 문법은 다음과 같습니다:

String.format(String format, Object... args)

주의:

  • format()는 정적 메서드입니다. String 클래스를 사용하여 format() 메서드를 호출합니다.

  • 위 코드에서, ...은 format()에 여러 개의 객체를 전달할 수 있습니다.

format() 파라미터

  • format - 포맷 문자열

  • args - 0개 또는 더 많은 파라미터

format() 반환 값

  • 포맷된 문자열을 반환

예제1Java String format()

class Main {
  public static void main(String[] args) {
    String language = "Java";
    int number = 30;
    String result;
    // 객체를 문자열로 포맷
    result = String.format("Language: %s", language);
    System.out.println(result); // Language: Java
    //숫자를 16진수 숫자로 포맷
    result = String.format("16진수: %x", number); // 1e
    System.out.println(result); // 16진수: 1e
  }
}

위 프로그램에서, 코드

result = String.format("Language: %s", language);

이 "Language: %s"는포맷 문자열.

포맷 문자열의 %s를 language 내용으로 대체합니다. %s는 포맷 기호입니다.

또한, %x는 String.format("Number: %x", number)에서 number의 16진수 값을 대체합니다.

포맷 기호

이하는 일반적인 포맷 기호입니다:

기호설명
%b, %B파라미터에 따라 "true" 또는 "false"로
%s, %S한 문자열
%c, %CUnicode 문자
%d10진수 정수(정수에만 사용)
%o8진수 정수(정수에만 사용)
%x, %X16진수 정수(정수에만 사용)
%e, %E과학적 표기법에 사용(浮动점 수에 사용)
%f10진수 수에 사용(浮动점 수에 사용)

예제2수의 문자열 형식

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float n2 = 35.864f;
    double n3 = 44534345.76d;
    //8진수 숫자로 포맷
    System.out.println(String.format("n18진수로: %o", n1));  // 57
    //16진수 숫자로 포맷
    System.out.println(String.format("n116진수로: %x", n1));  // 2f
    System.out.println(String.format("n116진수로: %X", n1));  // 2F
    //문자열로 포맷
    System.out.println(String.format("n1문자열로: %s", n1));  // 47
    System.out.println(String.format("n2문자열로: %s", n2));  // 35.864
    //과학적 표기법 형식
    System.out.println(String.format("n3과학적 표기법: %g", n3)); // 4.45343e+07
  }
}

출력 결과

n1의 8진수: 57
n1의 16진수: 2f
n1의 16진수: 2F
n1로 문자열로: 47
n2로 문자열로: 35.864
n3과학적 기수법: 4.45343e+07

포맷 문자열에서 여러 개의 형식 지시자를 사용할 수 있습니다.

예제3:使用多个格式说明符

//사용多个格式说明符
//포맷 문자열
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Result";
    System.out.println(String.format("%s\n16진수: %x", text, n1));
  }
}

출력 결과

Result
16진수: 2f

여기서 %s는 text의 값을 대체합니다. 또한 %o는 n을 대체합니다1의 16진수 값입니다.

Java String format()의 작업

예제4:십진수의 형식

class Main {
  public static void main(String[] args) {
    float n1 = -452.534f;
    double n2 = -345.766d;
    //원래 형식으로 부동소수점 숫자를 구성화합니다
    System.out.println(String.format("n1 =%f", n1)); // -452.533997
    System.out.println(String.format("n2 =%f", n2)); // -345.766000
    //소수점 뒤 두 자리까지 표시합니다
    System.out.println(String.format("n1 =%.2f", n1)); // -452.53
    System.out.println(String.format("n2 =%.2f", n2)); // -345.77
  }
}

출력 결과

n1 = -452.533997
n2 = -345.766000
n1 = -452.53
n2 = -345.77

주의:%f를 사용하여 구성화할 때-452.534시간에 따라-452.533997.이는 format() 메서드가 아니라, Java는 부동소수점 숫자의 정확한 표현을 반환하지 않기 때문입니다.

사용%.2f 형식 지시자를 사용할 때, format()는 소수점 뒤에 두 개의 숫자를 제공합니다.

예제5:공백과 0으로 숫자를 채웁니다

// using more than one format specifiers
// in a format string
class Main {
  public static void main(String[] args) {
    int n1 = 46, n2 = -46;
    String result;
        //숫자를 공백으로 채웁니다
        //문자열의 길이는5
    result = String.format("|%5d|", n1); // |   46|
    System.out.println(result);
        //숫자를 0으로 채웁니다
        //문자열의 길이는5
    result = String.format("|%5d|", n1); // |00046|
    System.out.println(result);
    //숫자 앞에 부호를 사용합니다
    result = String.format("%+d", n1); // +46
    System.out.println(result);
    result = String.format("%+d", n2); // -46
    System.out.println(result);
        //부호를 들여쓰기로 감싸고 있습니다
        //부호를 제거합니다
    result = String.format("%(d", n2); // (46)
    System.out.println(result);
  }
}

예제60x와 0을 사용하여 16진수와 8진수 전에 사용합니다.

//16진수 전에 0x를 사용합니다.
//8진수 전에 0을 사용합니다.
class Main {
  public static void main(String[] args) {
    int n = 46;
    System.out.println(String.format("%#o", n)); // 056
    System.out.println(String.format("%#x", n)); // 0x2e
  }
}

언어 환경을 포함한 Java 문자열 format()

지정된 언어 환경을 사용해야 하는 경우 String format() 메서드는 다른 문법도 가지고 있습니다.

String.format(Locale l, String format, Object... args)

예제7:format()에서 GERMAN 언어 환경 사용

//Locale 사용
import java.util.Locale;
class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;
    //현재 언어 환경을 사용합니다
    result = String.format("숫자: %%d", number);
    System.out.println(result);
    //GERMAN 언어 환경을 첫 번째 매개변수로 사용합니다
    result = String.format(Locale.GERMAN, "독일어 숫자: %%d", number);
    System.out.println(result);
  }
}

출력 결과

숫자: 8,652,145
독일어 숫자: 8.652.145

주의:독일에서는 정수를 .로 대체합니다,.

Java String(문자열) 메서드