我正在尝试使用String类的内置hash()方法创建一个目录,该目录的名称为哈希URL的十六进制版本的绝对值。现在,hash()可能会产生否定结果,并且以减号开头的目录名称有些难以处理,这就是为什么我需要此绝对值的原因。但是,我不知道如何获取哈希URL字符串的十六进制版本的绝对值。

最佳答案

十六进制值永远不会有负号!它只是该值的补码位模式的十六进制表示形式。

System.out.println(Integer.toHexString(-1)); // ffffffff
System.out.println(Integer.toHexString(Integer.MIN_VALUE)); // 80000000


就像母亲总是告诉您的那样:“您就是完美的,您就是完美的”:

String dirname = Integer.toHexString(dirname.hashCode()); // never has minus sign

关于java - 绝对值Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23025882/

10-08 23:32