Java - 如何将Color.toString()转换为Color?

Amo*_*tir 10 java colors

为了在我的应用程序中保存图形对象的Color属性,我将此Color的字符串表示保存在数据文件中.例如,对于红色我保存:java.awt.Color[r=255,g=0,b=0].如何将此字符串表示转换为Color,以便在加载数据文件后再次使用它?

谢谢.

ite*_*ter 16

您可能希望使用getRGB()而不是toString().你可以打电话

String colorS = Integer.toString(myColor.getRGB());

然后你可以打电话

Color c = new Color(Integer.parseInt(colorS));


tra*_*god 10

使用toString()"可能因实现而异".而是保存String.valueOf(color.getRGB())以供以后重建.


pol*_*nts 5

从文档 Color#toString

返回 this 的字符串表示形式Color此方法仅用于调试目的。返回字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null

换句话说,我不会依赖于能够将字符串反向转换为Color. 但是,如果您坚持这样做,您可以尝试解析字符串中的数字,并希望它可以在没有保证的情况下正常工作。

像这样的事情现在似乎对我有用

    Scanner sc = new Scanner("java.awt.Color[r=1,g=2,b=3]");
    sc.useDelimiter("\\D+");
    Color color = new Color(sc.nextInt(), sc.nextInt(), sc.nextInt());
Run Code Online (Sandbox Code Playgroud)

但是,我不建议实际执行此操作。