下面这段代码可以正常运行
import java.io.*;public class Main
{
        public static void main(String[] argv)
        {
                PrintStream cout = new PrintStream(System.out);
                cout.printf("%c", 'a');
        }
}但是将其中的%c还成%C(小写换大写)))
编译能通过,运行时却出现:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = 'C'
        at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2603)
        at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2631)
        at java.util.Formatter.parse(Formatter.java:2477)
        at java.util.Formatter.format(Formatter.java:2411)
        at java.io.PrintStream.format(PrintStream.java:899)
        at java.io.PrintStream.printf(PrintStream.java:800)
        at Main.main(Main.java:8)按sun的在线帮助文档里介绍:
 由大写字符(如 'B'、'H'、'S'、'C'、'X'、'E'、'G'、'A' 和 'T')表示的转换与那些相应的小写字符表示的转换相同,根据流行的 Locale 规则将结果转换成大写形式除外。结果等同于 String.toUpperCase() 的以下调用    out.toUpperCase() 理论上应该输出A。我的java是1.5.0版本。%C换成%1$C也一样不行。