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

我想将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值吗?

不,至少是因为:

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

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

至于你添加的问题 – 将它存储为RGB值而不是字符串。

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

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

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