计算任意字符串的十六进制颜色代码

tec*_*0nn 4 ruby java hex colors

标题

有没有办法将任意字符串映射到HEX COLOR代码.我尝试使用字符串哈希码计算字符串的十六进制数.现在我需要将这个十六进制数转换为六位数,这些数字是HEX颜色代码范围.有什么建议 ?

String [] programs = {"XYZ", "TEST1", "TEST2", "TEST3", "SDFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"};

for(int i = 0; i < programs.length; i++) {
  System.out.println( programs[i] + " -- " + Integer.toHexString(programs[i].hashCode()));
}
Run Code Online (Sandbox Code Playgroud)

M. *_*sup 11

如果你真的不关心颜色的"含义",你可以将int的位分开(删除第一个只用于RGB而不是ARGB)

String [] programs = {"XYZ", "TEST1", "TEST2", "TEST3", "SDFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"};

for(int i = 0; i < programs.length; i++) {
  System.out.println( programs[i] + " -- " + intToARGB(programs[i].hashCode()));
}
....
public static String intToARGB(int i){
    return Integer.toHexString(((i>>24)&0xFF))+
        Integer.toHexString(((i>>16)&0xFF))+
        Integer.toHexString(((i>>8)&0xFF))+
        Integer.toHexString((i&0xFF));
}
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 5

怎么样andhashcode或者0x00FFFFFF如果0xFFFFFF你想默认 Alpha 通道)?例如:

private String getColorCode(String inputString)
{
    String colorCode = String.format("#%06x", 0xFFFFFF & inputString.hashCode());
}
Run Code Online (Sandbox Code Playgroud)