簡體   English   中英

在 Java 中打印 Unicode 字符 - PrintWriter

[英]Printing Unicode Characters in Java - PrintWriter

["

public String toSymbol(Suit suit){
    switch(suit){
        case SPADE:
            return "\u2664";
        case DIAMOND:
            return "\u2662";
        case CLUB:
            return "\u2667";
        case HEART:
            return "\u2661";
        default:
            return "null";
    }
}

字形

正如所評論的,您應該檢查您的System.out和控制台是否設置為 UTF-8,並且是否有包含這些字符的字形的字體可用。

您忽略了提及您的操作系統,但我猜它是 Microsoft Windows。 如果是這樣,這個問題可能會有所幫助: Java、UTF-8 和 Windows 控制台

我們可以簡化您的代碼。 Java 源代碼支持 UTF-8,因此您可以直接使用實際的西裝字符,而不是使用 Unicode 代碼點轉義。

這是四個法國西裝字符,“黑色”和“白色”。

System.out.println( "♠️♥️♣️♦️" ) ; 
System.out.println( "♤♡♧♢" ) ; 

請參閱此代碼在 Ideone.com 上成功運行

枚舉

順便說一句,您可以在枚舉中嵌入表情符號字符的知識。 如您的問題所示,無需維護這種單獨的方法。

enum Suit {
    SPADES( "♠️" , "♤" ), HEARTS( "♥️" , "♡" ), CLUBS( "♣️" , "♧" ), DIAMONDS( "♦️" , "♢" );
    private final String emojiBlack, emojiWhite ;
    Suit( String emojiBlack , String emojiWhite ) {  // Constructor.
        this.emojiBlack = emojiBlack ;
        this.emojiWhite= emojiWhite ;
    }
    String emojiBlack() {  // Accessor (getter).
        return this.emojiBlack ;
    }
    String emojiWhite() {  // Accessor (getter).
        return this.emojiWhite ;
    }
}

用法:

System.out.println(
    Suit.HEARTS.emojiBlack() 
);

♥️

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM