日期:2014-05-20  浏览次数:20787 次

【初学java】for循环内循环变量用16进制数可以吗?打印希腊字母遇到问题。
代码:

public class exercise {
public static void main(String[] args) {
exercise ex=new exercise();
for (int i=0x03901; i<03d0e;i++)
{
System.out.println((char)i);
}
}

}
打出来一堆“?”。
是不是我的unicode编码找错了?
i的值可以不用10进制的吗?
我怎么才能打印出我想要的希腊字母?

------解决方案--------------------
Java code
public static void main(String[] args) throws IOException {
    Writer out = new OutputStreamWriter(new FileOutputStream("D:/sc.txt"), Charset.forName("UTF-8"));
    for (char i = '\u0391'; i < '\u03A9'; i++) {
        out.append(i);
    }   
    out.append('\r');
    out.append('\n');
    for (char i = '\u03B1'; i < '\u03C9'; i++) {
        out.append(i);
    }
    out.flush();
}

------解决方案--------------------
i的值可以不用10进制,
Java code

public class exercise {
    public static void main(String[] args) throws IOException {
        for (char i = '\u0391'; i < '\u03A9'; i++) {
            System.out.print(i);
        }
    }
}

------解决方案--------------------
用什么进制的数无所谓,只是给你看的,计算机只认识二进制的。
------解决方案--------------------
不能直接用16进制表示,要设置一下,
具体怎么设置,暂时忘了,
你直接用char行吧