当前位置: 首页 > 面试题库 >

如何在Java中打印颜色的字符串表示形式

慕容灿
2023-03-14
问题内容

我有一个大小为n的颜色数组。在我的程序中,团队数量总是<= n,我需要为每个团队分配唯一的颜色。这是我的颜色数组:

private static Color[] TEAM_COLORS = {Color.BLUE, Color.RED, Color.CYAN, Color.GREEN, Color.ORANGE, Color.PINK};

当我在控制台中打印有关播放器的信息时,我想打印与它们关联的颜色。当我打印颜色时,我得到

java.awt.Color[r=...,g=...,b=...].

我知道这就是Java打印颜色的方式。我想知道是否有一种方法可以代替打印蓝色,红色等(因此是预定义的颜色字符串)。


问题答案:

通过将名称也添加到枚举来扩展@Jon_Skeet答复。

public enum NamedColor {
  BLUE(Color.BLUE, "Blue"),
  RED(Color.RED, "Red"),
  ...;

  private final Color awtColor;
  private final String colorName;

  private NamedColor(Color awtColor, String name) {
    this.awtColor = awtColor;
    this.colorName = name;
  }

  public Color getAwtColor() {
    return awtColor;
  }

  public String getColorName() {
    return colorName;
  }
}

注意:如果对此投票,也请@Jon_Skeet答复,因为这是该问题的扩展。



 类似资料:
  • 问题内容: 如何打印字符串的转义表示形式,例如,如果我有: 我希望输出: 在屏幕上而不是 问题答案: 我认为您正在寻找: 从Apache Commons Lang v2.6 在Apache Commons Lang v3.5 +中已弃用,请使用Apache Commons Text v1.2

  • 问题内容: 我曾尝试打印它,但由于它是转义字符,因此只是通过而已。例如,输出应如下。 提前致谢 问题答案: 为此以及将来的参考:

  • 问题内容: 我正在编写一个程序,该程序将以字符串形式输出唯一字符(通过扫描仪输入)。我创建了一个方法来尝试实现此目的,但我一直在获取不重复的字符,而不是字符串中唯一的一个(或多个)字符。我只想要唯一的字母。 这是我的代码: 这是上面代码的示例输出: 预期的输出将是: 问题答案: 根据所需的输出,当以后重复时,必须替换最初已经添加的字符,因此:

  • 我想打印一个字符串作为valuei尝试遵循宏[2]和“set”[1]选项,但仍然没有运气; [1] 我怎样才能使我的速度测试版打印像;?

  • 我对Java相当陌生,我想打印字符串中字符的频率(“过滤”)。我将输入过滤到只剩下“az”数组中的字符的位置。在我看来,这应该行得通,但我显然做错了什么,因为我要么收到错误消息(“超出范围”),要么就是打印的值不正确。

  • 问题内容: 如何在控制台中打印颜色?我想在处理器发送数据时以彩色显示数据,而在接收数据时以不同的颜色显示数据。 问题答案: 我创建了一个名为JCDP(Java彩色调试打印机)的库。 对于Linux,macOS和Windows 10,它使用WhiteFang提到的ANSI转义代码,但是使用单词而不是代码来抽象它们,这更加直观。它变得像: