我有一个字符串格式的字符串:
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
) 被大写了。为什么会这样?我能做些什么来解决这个问题?
我有一个字符串格式的字符串:
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
) 被大写了。为什么会这样?我能做些什么来解决这个问题?
即使不是众所周知的行为,它也是一种完美记录的行为(可能是因为它既不是明显的需要也不是非常有用的东西)。
从javadoc:
下表总结了支持的转换。由大写字符表示的转换(即“B”、“H”、“S”、“C”、“X”、“E”、“G”、“A”和“T”)是相同的与对应的小写转换字符相同,只是根据当前 Locale 的规则将结果转换为大写。结果等效于以下对 String.toUpperCase() 的调用
在您的格式字符串中,您有一个%S
,它应该是一个%s
. 我目前还没有找到任何关于这种行为的文档,但是所有的字符串选择器(%s
,%f
等)都应该是小写的。