我正在尝试将String十六进制转换为整数。从哈希函数(sha-1)计算出十六进制字符串。我收到此错误:java.lang.NumberFormatException。我猜它不喜欢十六进制的String表示形式。我该如何实现。这是我的代码:

public Integer calculateHash(String uuid) {

try {

MessageDigest digest = MessageDigest.getInstance("SHA1");

digest.update(uuid.getBytes());

byte[] output = digest.digest();

String hex = hexToString(output);

Integer i = Integer.parseInt(hex,16);

return i;

} catch (NoSuchAlgorithmException e) {

System.out.println("SHA1 not implemented in this system");

}

return null;

}

private String hexToString(byte[] output) {

char hexDigit[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

'A', 'B', 'C', 'D', 'E', 'F' };

StringBuffer buf = new StringBuffer();

for (int j = 0; j < output.length; j++) {

buf.append(hexDigit[(output[j] >> 4) & 0x0f]);

buf.append(hexDigit[output[j] & 0x0f]);

}

return buf.toString();

}

例如,当我传递以下字符串: _DTOWsHJbEeC6VuzWPawcLA时 ,他的哈希值是:

0xC934E5D372B2AB6D0A50B9F0341A00ED029BDC15

但是我得到了:java.lang.NumberFormatException:对于输入字符串:“

0xC934E5D372B2AB6D0A50B9F0341A00ED029BDC15 ”

我真的需要这么做

我有一个由其UUID标识为字符串的元素的集合。我将必须存储这些元素,但是我的限制是使用整数作为其id。这就是为什么我计算给定参数的哈希值然后将其转换为int的原因。也许我做错了,但是有人可以给我建议以正确实现这一目标!!

谢谢你的帮助 !!

java中十六进制数_Java中的十六进制到整数相关推荐

  1. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  2. java有道_java中的各种流(老师的有道云笔记)

    内存操作流-字节 之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流.此时得使用内存流完成内存的输入和输出操作. 如果程序运行过程中要产生一些临时文件,可采用虚拟文 ...

  3. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  4. java synchronized 使用_Java中Synchronized的用法

    synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码 ...

  5. java synchronized静态_Java中Synchronized的用法(简单介绍)

    简单介绍 synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调 ...

  6. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  7. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  8. java中组合_java中组合模式详解和使用方法

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...

  9. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  10. java 代码锁_Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

最新文章

  1. Android 6.0 以及HttpClient
  2. Python零碎知识(3):对文件的基本操作
  3. 如何写python脚本抓取数据并计算_【小工具】利用Python脚本从Gaussian计算结果中提取信息...
  4. 垃圾回收机制的优点和原理
  5. matlab的yalmip为什么这么慢,Yalmip问题请教
  6. Linux或者Mac解压乱码问题
  7. java实验册_Java实验报告册Java实验报告册.doc
  8. 作者:王亚楠(1988-),男,中国科学院昆明植物研究所科学数据库管理员
  9. python画布位置_如何调整tkinter画布的位置
  10. PHP类中Static方法效率测试
  11. 通过Google分析页面加载缓慢并优化
  12. asp.net ashx处理程序中switch case的替代方案总结
  13. java编码什么时候需要增加空格_Java编码规范之声明和空白,空格
  14. 微信二维码扫码登录的原理
  15. 平谷php,平谷区行政区划_行政区划网(区划地名网) www.xzqh.org
  16. SOFA BOLT源码解析之设计要点-网络IO
  17. easyui datagrid deleteRow(删除行)的BUG或者updateRow值更新了不展示问题
  18. 【Android Camera开发】Android Automotive介绍
  19. Angular $injector:unpr Unknown provider 问题原因汇总
  20. C语言 线程的回收与子线程返回值的接收

热门文章

  1. 十亿级别的MySQL数据库表(InnoDB存储引擎),旧数据清理的蹩脚方案。
  2. kdev-ruby 停止开发,原 maintainer 转用其它编辑器
  3. 液相色谱柱PHP,浅谈液相色谱柱现代史
  4. PTX-NPs 纳米粒子修饰紫杉醇/与桦木酸PEG/邻硝基苯丙酸紫杉醇偶联物的制备
  5. azw3格式的电子书在kindle中怎么打开
  6. uboot 启动 linux ----2 ----set setevn saveenv 命令 保存介质
  7. Local time zone must be set-see zic manual page
  8. QFP封装芯片手工焊接和拆卸技巧
  9. Linux regulator
  10. 在微型计算机中,ram的特点是___.,2017计算机基础模拟试题「附答案」