如何处理unicode打印需要java中的空间

问题描述

你好,我的方法有很大问题。我编写了这些方法来绘制卡片,但由于我有卡片表面的 unicode,它无法正常工作。由于这个问题,这些 un​​icode 所需的空间不仅仅是一个空白,它会打印错误。有没有人知道我该如何处理这个问题?请帮我解决这个问题。

第一种方法是卡片面,第二种方法是一起创建多张卡片。

       public String[] card(){
      String[] card = new String[9];
      card[0] = ("┌───────────┐");
      card[1] = ( getNumber() < 10 ? "│ " + getNumber() +
         "         │" : "│"+( getNumber() == 10 ? "10" : getNumber() == 11 ? " J" : getNumber() == 12 ? " 
    Q" : " K")+"         │");
      card[2] = ("│           │") ;
      card[3] = ("│           │");
      card[4] = ("│─────"+ getFace() + "─────│") ;
      card[5] = ("│           │") ;
      card[6] = ("│           │") ;
      card[7] =(getNumber() < 10 ? "│         " + getNumber() +
         " │" : "│         "+( getNumber() == 10 ? "10" : getNumber() == 11 ? "J " : getNumber() == 12 ? 
    "Q " : "K ")+"│");
      card[8] = ("└───────────┘");
      return (card);
   }

   public static String renderCard(List<String[]> cards) {
      String[] lines = new String[9];
      String output = "";
      for (int i = 0; i < 9; i++) {
         for (String[] array : cards) {
            lines[i] = (lines[i]==null ? "" : lines[i]) + "   " + array[i];
         }
      }
      for(String line : lines){
         output += (line + "\n");
      }
      return output;
   }

输出Output

解决方法

我尝试了很多方法,发现这个问题是由 IntelliJ IDEA 预装字体引起的。要解决这个问题必须去: 文件 -> 设置 -> 编辑器 -> 常规 -> 字体 -> 字体 通过将字体从 JetBrains Mono 更改为 Consolas,这个问题将得到解决。