Java String.Format(“d”,1,Locale.US)中的阿拉伯字符

Java String.Format(“d”,1,Locale.US)中的阿拉伯字符,java,android,Java,Android,我有以下代码: private static final String PATTERN = "file_%d.txt"; int no; // 1-3 String filename = String.format(PATTERN, no ,Locale.US); 后来我得到一个例外说 java.io.FileNotFoundException: file_٣.txt 这表示%d已被替换为阿拉伯数字。如果我明确指定Locale.US,那怎么可能呢?Locale必须是第一个参数: Strin

我有以下代码:

private static final String PATTERN = "file_%d.txt";
int no; // 1-3
String filename = String.format(PATTERN, no ,Locale.US);
后来我得到一个例外说

java.io.FileNotFoundException: file_٣.txt

这表示%d已被替换为阿拉伯数字。如果我明确指定Locale.US,那怎么可能呢?

Locale必须是第一个参数:

 String.format(Locale.US,PATTERN, no);

这不是您应该使用的函数:,java.lang.String,java.lang.Object…+1。我不知道%d可以这样做。是的!我是对的:P检查蒂洛的答案。您的函数是正确的,因为Locale.US被认为是格式化字符串的第二个参数,而事实上,您的Locale应该是第一个参数。