java 1.8:在没有格式参数的情况下调用字符串#格式吃字符

java 1.8:在没有格式参数的情况下调用字符串#格式吃字符,java,string,format,Java,String,Format,在我的产品代码中,我注意到方法java.lang.String#format在使用时会“吃掉”要格式化的字符串的第一个字符,而不指定格式化参数 因此 生成以下控制台输出: %myStringValue 看,百分比字符中的一个是如何逃走的?为什么会这样?我在方法的docblock中找不到任何提示。序列%%是一个“转义序列”,可以打印%char本身,否则会被解释为,如“转换”下所述,%%被转换为%。它按预期工作。由于%%是格式字符串中的一个特殊字符,因此需要使用%%对其进行转义,以在输出中获得一个百

在我的产品代码中,我注意到方法
java.lang.String#format
在使用时会“吃掉”要格式化的字符串的第一个字符,而不指定格式化参数

因此

生成以下控制台输出:
%myStringValue


看,百分比字符中的一个是如何逃走的?为什么会这样?我在方法的docblock中找不到任何提示。

序列%%是一个“转义序列”,可以打印%char本身,否则会被解释为,如“转换”下所述,
%%
被转换为
%
。它按预期工作。由于
%%
是格式字符串中的一个特殊字符,因此需要使用
%%
对其进行转义,以在输出中获得一个百分号。是的可能重复,这是使用转义字符时的正确行为。哦,天哪。。。很抱歉,我“昏厥了”。我在指定异常消息时多次使用了这个东西。例如双重
%
字符让我有点困惑。谢谢大家的快速回复。
String.format("%%myStringValue\r\n");