Java フォーマット出力例外 (FormattedOutputException) の解決策
Java プログラミングでは、出力情報を読みやすく理解できるように、出力データをフォーマットする必要があることがよくあります。ただし、場合によっては、FormattedOutputException と呼ばれる例外が発生することがあります。これは、フォーマットされた出力プロセス中にエラーが発生したことを示します。この記事では、この例外の原因と解決策を紹介し、対応するコード例を示します。
1. 例外原因の分析
FormattedOutputException 例外は通常、String クラスの format() メソッドを使用して出力をフォーマットするときに発生します。 format() メソッドを使用するときは、通常、フォーマット文字列と対応するパラメーターを渡します。ただし、フォーマット文字列内のプレースホルダーが実際のパラメーターの型と一致しない場合は、FormattedOutputException 例外が発生します。
2. 解決策
FormattedOutputException 例外を解決するには、書式文字列内のプレースホルダーと実際のパラメータの一致、書式文字列内の特殊文字のエスケープという 2 つの点に注意する必要があります。
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); } }
上記のサンプル コードでは、形式文字列で 3 つのプレースホルダーを使用しています: %s、%d、%f。パラメータ名は文字列型であるため、プレースホルダとして「%s」を使用します。同様に、パラメータ age は整数型であるため、プレースホルダとして「%d」を使用します。パラメータの高さは浮動小数点型です。そのため、プレースホルダーとして「%f」を使用し、小数点以下 2 桁のみが保持されることを示すために「.2」を渡しました。
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 中国語 Web サイトの他の関連記事を参照してください。