计算任意字符串的hex颜色代码

标题

有没有办法将任意字符串映射到HEX COLOR代码。 我尝试使用字符串哈希码计算字符串的hex数。 现在我需要将这个hex数转换为六位数,这些数字是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())); } 

如果你真的不关心颜色的“含义”,你可以将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)); } 

如何使用0x00FFFFFF编写hashcode 0x00FFFFFF

我在寻找ruby解决方案时遇到了这个问题,所以我想我会为ruby添加一个答案,以防有人遵循我所做的相同路径。 我最终使用以下方法,通过使用ruby字符串的hash方法和Fixnum.to_s的可选基本指定参数,从字符串创建相同的六位hex代码。 它从1而不是0切片以跳过负号。

 def color_from_string query return '#'+query.hash.to_s(16).slice(1,6) end