我的颜色名称为String ("RED")
,我需要将其转换为十六进制。如何实现此目的。
您甚至可以使用Java进行转换吗?
由于我使用了awt软件包,
Color getColor = Color.getColor(color);
String hexCode = "#" + Integer.toHexString(getColor.getRGB()).substring(2).toUpperCase();
注意:我不想使用java.awt.Color
软件包
答案 0 :(得分:1)
如果您不想使用任何其他类,则可以通过仅使用查找表(仅是地图)来实现。
String color = "RED";
Map<String, String> lookupTable = new TreeMap<>();
lookupTable.put("RED", "#ff0000");
System.out.println(lookupTable.get(color));
答案 1 :(得分:1)
答案 2 :(得分:0)
答案 3 :(得分:0)
我认为您应该使用java.awt.Color类所建议的方法。 例如,您可以使用此方法从名称转换为颜色:
public static Color stringToColor(final String value) {
if (value == null) {
return Color.black;
}
try {
// get color by hex or octal value
return Color.decode(value);
} catch (NumberFormatException nfe) {
// if we can't decode lets try to get it by name
try {
// try to get a color by name using reflection
final Field f = Color.class.getField(value);
return (Color) f.get(null);
} catch (Exception ce) {
// if we can't get any color return black
return Color.black;
}
}
}
一旦有了颜色,就可以得到他的十六进制值,如下所示:
String hex = "#"+Integer.toHexString(your_color.getRGB()).substring(2);
如果您不想使用java.awt.Color(因为您说的很旧),可以尝试使用“ javafx.scene.paint.Color”来实现相同的功能