我们先来看示例代码:
Locale l1 = new Locale("fr_FR");
Locale l2 = new Locale("fr-FR");
Locale l3 = new Locale("fr_fr");
Locale l4 = new Locale("fr-fr");
Locale l5 = new Locale("fr", "FR");
Locale l6 = new Locale("fr", "fr");
Locale l7 = Locale.FRANCE;
System.out.println(l1.getDisplayCountry());
System.out.println(l2.getDisplayCountry());
System.out.println(l3.getDisplayCountry());
System.out.println(l4.getDisplayCountry());
System.out.println(l5.getDisplayCountry());
System.out.println(l6.getDisplayCountry());
System.out.println(l7.getDisplayCountry());
System.out.println("----------------");
NumberFormat nf1 = NumberFormat.getInstance(l1);
NumberFormat nf2 = NumberFormat.getInstance(l2);
NumberFormat nf3 = NumberFormat.getInstance(l3);
NumberFormat nf4 = NumberFormat.getInstance(l4);
NumberFormat nf5 = NumberFormat.getInstance(l5);
NumberFormat nf6 = NumberFormat.getInstance(l6);
NumberFormat nf7 = NumberFormat.getInstance(l7);
System.out.println(nf1.format(12345.678));
System.out.println(nf2.format(12345.678));
System.out.println(nf3.format(12345.678));
System.out.println(nf4.format(12345.678));
System.out.println(nf5.format(12345.678));
System.out.println(nf6.format(12345.678));
System.out.println(nf7.format(12345.678));
我在Locale(String)这里测试构造函数,因为format()方法的结果在我的应用程序中是错误的。我使用了与第一行l1相同的方式,但这在我的台式PC和android手机上均不起作用。确切地说,它可以与Android TTS API配合使用,但在其他所有功能上均无法正常运行。如果您看到上面的代码,则只有后三个l5,l6和l7可以在Windows和Android上正常工作。
我没有收到任何错误或异常消息,但是 l1,l2,l3和l4的getDisplayCountry()返回什么都不返回,而nf1,nf2,nf3,nf4的format()返回则与Locale.US一样。
前两个有什么问题?
临摹微笑
相关分类