Java:printfステートメントのリテラルパーセント記号


138

Javaのprintfステートメントに実際のパーセント記号を追加しようとすると、エラーが発生します。

lab1.java:166: illegal escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                 ^
lab1.java:166: illegal escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                          ^
2 errors

実際のパーセント記号をprintfに挿入する方法がわかりませんか?\%を使用してエスケープするとうまくいくと思いましたが、うまくいきません。

何か案は?

回答:


197

パーセント記号は、パーセント記号を使用してエスケープされます。

System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);

完全な構文はにアクセスすることができますJavaのドキュメント。この特定の情報はConversions、最初のリンクのセクションにあります。

コンパイラーがエラーを生成する理由は、バックスラッシュに続く文字の数が限られているためです。%は有効な文字ではありません。


102

エスケープされたパーセント記号は2パーセント(%%)です。

System.out.printf("2 out of 10 is %d%%", 20);

2

Apache Commons LoggingユーティリティからStringEscapeUtilsを使用するか、各文字のコードを使用して手動でエスケープできます。


from は非推奨であるため、StringEscapeUtilsfromを使用する必要があります。commons-textcommons-lang3
Eric Wang
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.