Java String.format()正在将参数大写

Java String.format()正在将参数大写,java,string-formatting,Java,String Formatting,我有一个字符串格式字符串: String.format("CREATE TABLE %s (" + "%S INTEGER PRIMARY KEY AUTOINCREMENT, %s INTEGER NOT NULL, %s TEXT NOT NULL)", SPORT_TABLE, SPORT_ID, SPORT_WSID, SPORT_TITLE); 但是我的第二个论点(SPORT\u ID)是大写的。为什么会这样?我可以做些什么来修复此问题?在格式字符串中,您有一个%S,

我有一个字符串格式字符串:

String.format("CREATE TABLE %s ("
    + "%S INTEGER PRIMARY KEY AUTOINCREMENT, %s INTEGER NOT NULL, %s TEXT NOT NULL)",
    SPORT_TABLE, SPORT_ID, SPORT_WSID, SPORT_TITLE);

但是我的第二个论点(
SPORT\u ID
)是大写的。为什么会这样?我可以做些什么来修复此问题?

在格式字符串中,您有一个
%S
,它应该是
%S
。我目前还没有找到任何关于这个行为的文档,但是所有的字符串选择器(
%s
%f
,等等)都应该是小写的。

是一个完整的文档行为,即使不是一个众所周知的行为(可能是因为它既不是一个明显的需要,也不是非常有用的东西)

发件人:

下表总结了支持的转换。转换 由大写字符表示(即“B”、“H”、“S”、“C”、“X”、“e”, “G”、“A”和“T”)与对应的 除转换结果外的小写转换字符 根据流行地区的规则,使用大写字母。这个 结果相当于以下调用 String.toUpperCase()