A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pzfpang449 中级黑马   /  2013-1-24 15:35  /  4898 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-1-27 10:17 编辑

有一字符串: “  ”
如何将其映射为一整数
可否用Hash来实现
补充:
例如将"gfjkoeeldj,dfsjljldfsdf"一一对应到诸如12345这样的,方便查询

11 个回复

倒序浏览
楼主什么意思啊
回复 使用道具 举报
用数组吧,方便点,查表法
回复 使用道具 举报
我看hash是实现不了的···
回复 使用道具 举报
vmvm555 发表于 2013-1-24 16:37
楼主什么意思啊

不知道你有没见过那种输入数字123456,之后输出nihaoa,类似Hash表的那样相互对应的程序。
回复 使用道具 举报
你是不是想要把一个正的字符串如:“abc,ref,sdg,dgf,ef,dg,dg,dgg4d,gh,dgf”这样的字符串弄成跟数组的数据结构一样啊。如:abc 为第一个。ref 为第二个。如果是这样的话,你可以先用“,”切割成若干的字串,然后存入String数组中就可以了

String  s1 = “abc,ref,sdg,dgf,ef,dg,dg,dgg4d,gh,dgf”;
String [] s2 = s1.split(",");  //这样就可以按角标访问了


点评

不过,还是谢谢你了。祝你新年快乐!  发表于 2013-1-24 18:57
你说的是数组的split切割吧,不是我说的类似哈希表那种对应关系的结构。不是找特殊字符切割  发表于 2013-1-24 18:56
回复 使用道具 举报
逍林游 发表于 2013-1-24 18:31
我看hash是实现不了的···

能说明下吗?我怎么觉得还是哈希表可以实现。。我在想想。。。
回复 使用道具 举报
txl 中级黑马 2013-1-24 19:37:23
8#
本帖最后由 黑马唐贤来 于 2013-1-24 19:39 编辑
  1. tring str = "AKOHFDGGT";
  2. //System.out.println(str.hashCode());
  3. int[] i = new int[str.length()];

  4. for(int a = 0; a < str.length(); a++)
  5. {
  6. i[a] = str.charAt(a);
  7. System.out.print(i[a]+",");
  8. }

  9. StringBuilder s = new StringBuilder() ;

  10. for(int b = 0; b < str.length();b++)
  11. {
  12. s.append((char)i[b]);
  13. }

  14. System.out.println("\r"+s);
复制代码
楼主,我想将字符串映射为整数的话,万一那个字符串太长,什么类型可以装下呢?
所以还是退而求其次,将每个字符都存入int[]数组中,再重数组中得吧
回复 使用道具 举报
杨玲 中级黑马 2013-1-24 23:25:16
9#
楼主是想让每一个数字对应于一个字符吗?那样用Map集合吧,一个键对应于一个值!
回复 使用道具 举报
MAP集合,
回复 使用道具 举报
pzfpang449 发表于 2013-1-24 18:55
能说明下吗?我怎么觉得还是哈希表可以实现。。我在想想。。。

两个不同对象hash值可能相同
回复 使用道具 举报
如果存在对于关系可以利用HashMap容器来存储这些数据,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马