如何检查String是android中有效的十六进制颜色代码

And*_*ice 6 java android


我有一个字符串,我需要验证它是否是有效的十六进制颜色代码.我的示例字符串如下:

1 - #ff00000

2 - #ff347820

如何验证上述字符串以检查它们是否是有效的十六进制颜色代码.
任何人都可以帮我解决这个问题吗?


提前致谢

njz*_*zk2 15

独立于支持未来格式的正确Android测试方法是依赖于Color该类.

像这样:

try {
    Color color = Color.parseColor(myColorString);
    // color is a valid color
} catch (IllegalArgumentException iae) {
    // This color string is not valid
}
Run Code Online (Sandbox Code Playgroud)

作为奖励,它也支持命名的颜色,例如magenta,blue...

主要的正则表达式匹配是语义的.此代码显式测试myColorStringString作为Color.你几乎不需要任何评论来告诉我们做了什么.


Jof*_*rey 11

您可以使用正则表达式来执行此操作,在这种情况下,您可以使用Pattern类:

Pattern colorPattern = Pattern.compile("#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})");
Matcher m = colorPattern.matcher(yourInputString);
boolean isColor = m.matches();
Run Code Online (Sandbox Code Playgroud)