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