在String.Format("%d",1,Locale.US)中使用阿拉伯字符

6

I have the following code:

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,那怎么可能呢?

1
这不是你应该使用的函数吗:http://developer.android.com/reference/java/lang/String.html#format(java.util.Locale, java.lang.String, java.lang.Object...) - Sherif elKhatib
+1. 我从来不知道%d可以做到那样的事情。 - Thilo
是的!我是对的 :P 检查Thilo的答案。你的函数是正确的,因为Locale.US被认为是格式化字符串的第二个参数,而实际上,你的locale应该是第一个参数。 - Sherif elKhatib
1个回答

7
地区需要放在第一个参数位置:
 String.format(Locale.US,PATTERN, no);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接