java.awt.color转换为java.lang.string

时间:2011-07-16 13:44:41

标签: java

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

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

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

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

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

提前致谢。

编辑:我想将此颜色值存储在数据库中。我应该将其存储为String或RGB值吗?

4 个答案:

答案 0 :(得分:7)

没有。至少是因为:

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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