【问题标题】:java.awt.color to java.lang.string conversionjava.awt.color 到 java.lang.string 的转换
【发布时间】:2011-07-16 13:44:41
【问题描述】:

我想将 java.awt.color 对象转换为字符串。

Color c = new Color(255,0,0);
System.out.print(Color.toString);

它打印 java.awt.Color[r=255,g=0,b=0]

现在我想解析这个字符串并解码颜色名称,例如蓝色等。

我在想有没有其他方法可以直接将此颜色转换为字符串。

提前致谢。

编辑:我想将此颜色值存储在数据库中。我应该将其存储为字符串还是 RGB 值?

【问题讨论】:

  • “我应该将它存储为字符串还是 RGB 值?” 肯定是后者。

标签: java


【解决方案1】:

没有。至少是因为:

  • 很少有 rgb 组合有颜色名称
  • java 不包含它支持语言环境的所有语言的颜色名称

但你可以不这样做。获取Color 中的预定义常量并检查它们中的任何一个是否具有与给定颜色相同的RGB。如果是这样 - 打印名称。

至于您添加的问题 - 将其存储为 RGB 值而不是字符串。

【讨论】:

    【解决方案2】:

    您必须从商定的颜色名称列表开始,例如these。然后构建一个Map<Color, String>),从中获取名称。

    【讨论】:

      【解决方案3】:

      您可以使用方法getRed()getBlue()getGreen()getAlpha() 来获取颜色的组件,而不是解析从toString() 返回的字符串。您还可以将颜色与 java.awt.Color 中的静态字段进行比较(使用 Equals。)

      【讨论】:

      • 为什么要获取组件?例如Color.blue.equals(new Color(0, 0, 255)).
      • 我的意思是,获取颜色的组件,而不是解析从java.awt.Color.toString()返回的字符串。
      【解决方案4】:

      您可以使用 HTML4 基本和扩展颜色关键字。他们应该可以使用如下表格直接从 rgb 值中获取:http://www.w3.org/TR/css3-color/#html4

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 1970-01-01
        • 2019-05-17
        • 2018-02-10
        • 1970-01-01
        • 1970-01-01
        • 2021-04-22
        • 1970-01-01
        • 2015-05-18
        相关资源
        最近更新 更多