我正在制作一个随机文件生成器,该文件生成器生成具有随机笛卡尔点的txt
问题是:当我将String.format用作数字时(例如4.3),我得到“ 4,3”。但是我不需要逗号,我什至都不知道为什么会产生逗号,根本没有用...
代码:

FileWriter fileWriter = new FileWriter(new File("txt.txt"));
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
Random generator = new Random();
int nPoints = generator.nextInt(10)+10;
bufferedWriter.write(""+nPoints);
for (int n=0; n<nPoints; n++){
    bufferedWriter.newLine();
    String x = String.format("%.1f", generator.nextDouble()*100-50);
    String y = String.format("%.1f", generator.nextDouble()*100-50);
    bufferedWriter.write(x + " " + y);
}
bufferedWriter.close();


我已经使用replace(“,”,“。”)解决了问题,但是我有点觉得这不是一个好的解决方案,并且我想知道是否有任何理由在format方法中使用逗号。

最佳答案

代替使用替代方法(用逗号代替逗号),应以适当的方式解决它。 “有一个API。”

Locale.setDefault(new Locale("pt", "BR"));
String portuguese = String.format("%.1f", 1.4d);
String english = String.format(Locale.ENGLISH, "%.1f", 1.4d);
System.out.println("pt_BR = " + portuguese);
System.out.println("en_GB = " + english);


生产的产出

pt_BR = 1,4
en_GB = 1.4


它不是nonstandardized function (see the Javadoc)。标准为use the default locale,如果需要,为you are able to change the behavior

09-28 12:12
查看更多