用Java打印Unicode占星术标志

时间:2014-02-28 22:57:39

标签: java unicode printing escaping

我已经阅读了Stack Exchange和其他网站上的几篇帖子,但我仍然有点担心如何在Java中打印占星术标志。

public static void main(String[] args)
{
    char aa = \u2648;
    char ab = \u2649;
    char ac = \u264A;
    char ad = \u264B;
    char ae = \u264C;
    char af = \u264D;
    char ag = \u264E;
    char ah = \u264F;
    char ai = \u2650;
    char aj = \u2651;
    char ak = \u2652;
    char al = \u2653;

    while(true)
    {
        System.out.println(aa + ab + ac + ad + ae + af + ag + ah + ai + aj + ak + al);
    }
}

根据我的理解,当unicode的十六进制值在U + 0000到U + FFFF范围内时,只能使用\ u,这是。我尝试编译它,它给了我12个非法的字符语法错误。任何帮助将不胜感激。 ^ _ ^

附加信息:我正在将其打印到控制台,我正在使用TextPad进行编译。

2 个答案:

答案 0 :(得分:1)

试试这个。请注意,您将在无限循环中打印字符。

更新:要打印unicode字符,您必须使用“UTF-8”编码创建新的输出流。试试这个。它应该工作。

public static void main(String[] args) {
    char aa = '\u2648';
    char ab = '\u2649';
    char ac = '\u264A';
    char ad = '\u264B';
    char ae = '\u264C';
    char af = '\u264D';
    char ag = '\u264E';
    char ah = '\u264F';
    char ai = '\u2650';
    char aj = '\u2651';
    char ak = '\u2652';
    char al = '\u2653';

    PrintStream out = null;
    try {
        out = new PrintStream(System.out, true, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    out.println("" + aa + ab + ac + ad + ae + af + ag + ah + ai + aj + ak + al);
}

答案 1 :(得分:0)

使用字符文字周围的''使其可编辑。