gpt4 book ai didi

java - 在 Eclipse (Java) 中使用 Unicode 符号的奇怪打印行为

转载 作者:行者123 更新时间:2023-11-30 10:00:15 25 4
gpt4 key购买 nike

作为我程序的一部分,我在控制台中打印出“扑克牌”。我为卡片套装使用 unicode 字符,所以我确保控制台使用 UTF-8 编码。但是,对于 unicode 符号,我遇到了两个有点难以解释的奇怪问题;见附图。

  1. unicode 字符似乎改变了它之后文本的字体大小(在图片中,看到符号之后,星号和数字的字体较小;字母始终为常规大小)
  2. Unicode 字符直接在数字字符之后打印为问号,但会在字母字符之后的行的其余部分正确打印(在图片中,请参阅堆栈 3 打印的位置 ? 在 9 之后打印但打印从 J 开始的正确符号)

控制台图片: (Picture of console)

(请注意,我是初学者,所以我的代码可能效率不高!)

// Creates 2 character arrays for the card's suit and rank, then puts them into a string array in a form like "Q of ♧" (queen of clubs)
String allCards[] = new String[52];
char suit[] = {'\u2667', '\u2662', '\u2664', '\u2661'};
char rank[] = {'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K'};
int k=0;
for(int i=0; i<4; i++)
{
for(int j=0; j<13; j++)
{
allCards[k] = rank[j] + " of " + suit[i];
k++;
}
}
// Puts 21 random cards into an array, cardFullStack
Random r = new Random();
String cardFullStack[] = new String[21];
for(int i=0; i<21; i++)
{
int cardIndex = r.nextInt(52);
cardFullStack[i] = allCards[cardIndex];
}
// Prints 3 stacks of 7 cards each, see picture attached above.
for(int i=0; i<3; i++)
{
System.out.println("Stack " + (i+1) + ":");
System.out.println("****** ****** ****** ****** ****** ****** ****** ");
System.out.println("* * * * * * * * * * * * * * ");
for(int j=0; j<7; j++)
{
// ISSUE LINE:
// Should get the rank and suit of the card, and print something like "* Q♧ *"
System.out.print("* " + cardFullStack[7*i+j].charAt(0) + cardFullStack[7*i+j].charAt(5) + " * ");
}
System.out.println();
System.out.println("* * * * * * * * * * * * * * ");
System.out.println("****** ****** ****** ****** ****** ****** ****** ");
}

我真的不知道为什么会出现这个问题。这是我能让卡片出现的最好结果。感谢您提供的任何帮助。谢谢!

最佳答案

问题似乎来自字体。我仍然不确定为什么我尝试的大多数等宽字体都有同样的问题,但该程序使用 DejaVu Sans Mono 运行。

关于java - 在 Eclipse (Java) 中使用 Unicode 符号的奇怪打印行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com