6

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

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_ID) 被大写了。为什么会这样?我能做些什么来解决这个问题?

4

2 回答 2

13

即使不是众所周知的行为,它也是一种完美记录的行为(可能是因为它既不是明显的需要也不是非常有用的东西)。

javadoc

下表总结了支持的转换。由大写字符表示的转换(即“B”、“H”、“S”、“C”、“X”、“E”、“G”、“A”和“T”)是相同的与对应的小写转换字符相同,只是根据当前 Locale 的规则将结果转换为大写。结果等效于以下对 String.toUpperCase() 的调用

于 2013-07-25T19:45:16.990 回答
10

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

于 2013-07-25T19:43:17.877 回答