Java String.Format()说明符的奇怪行为
我有以下代码:Java String.Format()说明符的奇怪行为,java,string.format,Java,String.format,我有以下代码: String requestString=String.format(Constants.SEARCH_SETS_API, Constants.DEVELOPER_KEY, "ids:".concat(setId), "1"); 在哪里 public static final String DEVELOPE
String requestString=String.format(Constants.SEARCH_SETS_API,
Constants.DEVELOPER_KEY,
"ids:".concat(setId),
"1");
在哪里
public static final String DEVELOPER_KEY = "3ansrfnt10cggo80";
public static final String SEARCH_SETS_API =
"http://api.quizlet.com/1.0/sets?"
+ "dev_key=%1s&"
+ "q=%2s&"
+ "sort=alphabetical&"
+ "whitespace=off&"
+ "page=%3s&"
+ "per_page=50&"
+ "time_format=unix&"
+ "images_only=off&"
+ "updated_since=0&"
+ "extended=on";
问题:
问题是,如果第三个参数的长度为1或2个字符,如1、12等,则在%3s说明符之前插入了\n。如果它的长度为3个字符,如123等,则不会插入回车符
问题:
如果%3s参数的长度为1或2个字符,如何在它之前去掉回车符 我认为您正在寻找%1$s、%2$s等。您在格式字符串中指定的内容实际上是将插入的值填充到您给定的长度,例如1、2和3个字符。还有其他原因,因为如果您编写了一个短测试,则情况并非如此。因为1只是一个字符,所以会用空格填充它;谢谢你!事实上,我在格式化时犯了一个错误:%[argument_index$][flags][width][.precision]转换-根据这一点,我认为%1$s意味着第一个参数应该转换为字符串。看起来我错了?您没有指定“%1$s”,只指定了“%1s”。您缺少“$”符号。那么,我认为,接受答案将是一个合适的回答: