Java 使用Format和Printf进行混淆解码

Java 使用Format和Printf进行混淆解码,java,Java,我对使用format()和printf方法进行字符串格式化非常陌生。我已经在Oracle网站上阅读了教程,但发现它非常混乱。所以决定尝试一些例子。我拿到了这个样品 已将输出理解为124.00 public class TestStringFormatter { public static void main(String[] args){ /* I do understand % - denotes start of instruction , is the flag

我对使用format()和printf方法进行字符串格式化非常陌生。我已经在Oracle网站上阅读了教程,但发现它非常混乱。所以决定尝试一些例子。我拿到了这个样品 已将输出理解为
124.00

public class TestStringFormatter {
  public static void main(String[] args){
    /* I do understand % - denotes start of instruction
       , is the flag
       6 - denotes width
       2 - Denotes precision
       f - Type */  
    String s = String.format("%,6.2f",124.000) ;
    System.out.printf(s);
  }
}
我无法理解的是,这个标志以及它是如何在这种格式中使用的?
有人能解释一下这个例子中“flag”的用法吗

逗号标志表示逗号将用于分隔千,至少在美国是这样。在其他国家,它将使用在这些国家更有意义的分离器。例如,使用逗号标志格式化
123
将产生
123
,使用逗号标志格式化
123456789
将产生
123456789

逗号标志表示逗号将用于分隔千,至少在美国是这样。在其他国家,它将使用在这些国家更有意义的分离器。例如,使用逗号标志格式化
123
将产生
123
,使用逗号标志格式化
123456789
将产生
123456789

hi@tbodt,我不明白的是为什么没有,在本例中使用。为什么它没有生成124,00的输出。这是因为java不认为您居住在德国或其他以逗号形式打印小数点的国家。谢谢tbodt。我现在明白了。我需要更详细地探索它,做更多的练习,这样我才能适应它。:)我刚刚做了。我在等待答案被接受,因为它说我必须等待2-3分钟。hi@tbodt,我不明白的是为什么没有,在这个例子中使用了。为什么它没有生成124,00的输出。这是因为java不认为您居住在德国或其他以逗号形式打印小数点的国家。谢谢tbodt。我现在明白了。我需要更详细地探索它,做更多的练习,这样我才能适应它。:)我刚刚做了。我在等待答案的接受,因为它说我必须等待2-3分钟。嗨,吉姆,这不是关于文件。我正在经历它,显然,我对它很陌生,我对输出感到困惑。为什么没有,用在这里,我想输出应该是124,00左右。对不起,你是对的。我误解了这个问题。答案是您没有指定逗号用作小数分隔符的区域设置。格式规范中的逗号只是告诉格式化程序对所使用的区域设置使用适当的分隔符。非常感谢Jim,我现在明白了。这是有道理的。嗨,吉姆,这与文档无关。我正在经历它,显然,我对它很陌生,我对输出感到困惑。为什么没有,用在这里,我想输出应该是124,00左右。对不起,你是对的。我误解了这个问题。答案是您没有指定逗号用作小数分隔符的区域设置。格式规范中的逗号只是告诉格式化程序对所使用的区域设置使用适当的分隔符。非常感谢Jim,我现在明白了。这是有道理的。