[英]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.