css 样式十六进制字符串和 Color.decode

2022-09-02 00:15:51

本文建议你可以使用,但是这可以理解地抛出一个异常Color c = Color.decode("FF0096");

Caused by: java.lang.NumberFormatException: For input string: "FF0096"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:449)
    at java.lang.Integer.valueOf(Integer.java:528)
    at java.lang.Integer.decode(Integer.java:958)
    at java.awt.Color.decode(Color.java:707)

将“#FF0096”或“FF0096”格式的字符串转换为java awt Color的最佳方法是什么?


答案 1
Color c = Color.decode("0xFF0096");

Color c = Color.decode("#FF0096");

Color c = new Color(0xFF0096);

答案 2

Color.decode 方法在指定的字符串无法解释为十进制、八进制或十六进制整数时引发 NumberFormatException

没有前缀的字符串“FF0096”或将被解释为不起作用的基数10表示。00x