>  기사  >  Java  >  Java 형식 출력 예외(FormattedOutputException)에 대한 솔루션

Java 형식 출력 예외(FormattedOutputException)에 대한 솔루션

PHPz
PHPz원래의
2023-08-25 22:30:381337검색

Java 형식 출력 예외(FormattedOutputException)에 대한 솔루션

Java FormattedOutputException에 대한 솔루션

Java 프로그래밍에서는 출력 정보를 더 쉽게 읽고 이해할 수 있도록 출력 데이터의 형식을 지정해야 하는 경우가 많습니다. 그러나 때로는 포맷된 출력 프로세스 중에 오류가 발생했음을 나타내는 FormattedOutputException이라는 예외가 발생할 수 있습니다. 이 문서에서는 이 예외의 원인과 해결 방법을 소개하고 해당 코드 예제를 제공합니다.

1. 예외 원인 분석
FormattedOutputException 예외는 일반적으로 String 클래스의 format() 메서드를 사용하여 출력 형식을 지정할 때 발생합니다. format() 메서드를 사용할 때 일반적으로 형식 문자열과 해당 매개변수를 전달합니다. 그러나 형식 문자열의 자리 표시자가 실제 매개 변수 유형과 일치하지 않으면 FormattedOutputException 예외가 발생합니다.

2. 솔루션
FormattedOutputException 예외를 해결하려면 형식 문자열의 자리 표시자와 실제 매개변수의 일치, 형식 문자열의 특수 문자 이스케이프 등 두 가지 사항에 주의해야 합니다.

  1. 자리 표시자와 매개변수 일치
    형식화된 문자열에서 자리 표시자 "%s"를 사용하면 문자열 유형 매개변수로 바꿔야 한다는 의미입니다. 우리가 전달하는 실제 매개변수가 문자열 유형이 아닌 경우 FormattedOutputException이 발생합니다. 이 문제를 방지하려면 매개변수 유형에 따라 적절한 자리 표시자를 선택해야 합니다. 예를 들어, 매개변수가 정수 유형이면 "%d"를 자리 표시자로 사용해야 하고, 매개변수가 부동 소수점 유형이면 "%f"를 자리 표시자로 사용해야 합니다. 다음은 샘플 코드입니다.
public class FormattedOutputExample {
    public static void main(String[] args) {
        String name = "Tom";
        int age = 20;
        double height = 1.80;

        // 错误示例,会导致FormattedOutputException异常
        System.out.format("My name is %s, age is %d, height is %f", name, age, height);

        // 正确示例
        System.out.format("My name is %s, age is %d, height is %.2f", name, age, height);
    }
}

위 샘플 코드에서는 형식 문자열에 %s, %d, %f라는 세 개의 자리 표시자를 사용했습니다. 매개변수 이름은 문자열 유형이므로 "%s"를 자리 표시자로 사용합니다. 마찬가지로 매개변수 age는 정수 유형이므로 매개변수 height는 부동 소수점 유형으로 사용합니다. 그래서 "%f"를 자리 표시자로 사용하고 ".2"를 전달하여 소수점 이하 두 자리만 유지됨을 나타냈습니다.

  1. 특수 문자 이스케이프
    형식 문자열에서 일부 특수 문자를 이스케이프해야 합니다. 그렇지 않으면 FormattedOutputException이 발생합니다. 예를 들어 형식 문자열에 백분율 기호 "%"를 출력하려면 "%%"를 사용하여 이스케이프해야 합니다. 다음은 샘플 코드입니다.
public class FormattedOutputExample {
    public static void main(String[] args) {
        double percentage = 0.8;

        // 错误示例,会导致FormattedOutputException异常
        System.out.format("The percentage is %d%", percentage * 100);

        // 正确示例
        System.out.format("The percentage is %d%%", (int)(percentage * 100));
    }
}

위 샘플 코드에서는 "%%"를 사용하여 백분율 기호 %를 이스케이프하여 FormattedOutputException 발생을 방지합니다.

3. 요약
Java에서 출력 형식을 지정할 때 형식 문자열의 자리 표시자와 실제 매개변수의 일치와 특수 문자의 이스케이프에 주의해야 합니다. 자리 표시자와 매개 변수 유형이 일치하고 특수 문자가 올바르게 이스케이프된 경우에만 FormattedOutputException 예외를 피할 수 있습니다. 자리 표시자와 이스케이프 문자를 합리적으로 사용하면 Java 프로그래밍에서 더 정확하고 읽기 쉬운 형식의 출력을 얻을 수 있습니다.

위 내용은 Java 형식 출력 예외(FormattedOutputException)에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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