黑马程序员技术交流社区

标题: 提问:字符串映射数字问题! [打印本页]

作者: pzfpang449    时间: 2013-1-24 15:35
标题: 提问:字符串映射数字问题!
本帖最后由 张向辉 于 2013-1-27 10:17 编辑

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

作者: vmvm555    时间: 2013-1-24 16:37
楼主什么意思啊
作者: 李跃达    时间: 2013-1-24 17:02
用数组吧,方便点,查表法
作者: 逍林游    时间: 2013-1-24 18:31
我看hash是实现不了的···
作者: pzfpang449    时间: 2013-1-24 18:53
vmvm555 发表于 2013-1-24 16:37
楼主什么意思啊

不知道你有没见过那种输入数字123456,之后输出nihaoa,类似Hash表的那样相互对应的程序。
作者: 刘军亭    时间: 2013-1-24 18:54
你是不是想要把一个正的字符串如:“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(",");  //这样就可以按角标访问了



作者: pzfpang449    时间: 2013-1-24 18:55
逍林游 发表于 2013-1-24 18:31
我看hash是实现不了的···

能说明下吗?我怎么觉得还是哈希表可以实现。。我在想想。。。
作者: txl    时间: 2013-1-24 19:37
本帖最后由 黑马唐贤来 于 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
楼主是想让每一个数字对应于一个字符吗?那样用Map集合吧,一个键对应于一个值!
作者: 赵晓东    时间: 2013-1-25 10:47
MAP集合,
作者: 逍林游    时间: 2013-1-25 13:35
pzfpang449 发表于 2013-1-24 18:55
能说明下吗?我怎么觉得还是哈希表可以实现。。我在想想。。。

两个不同对象hash值可能相同
作者: 高浩    时间: 2013-1-25 16:26
如果存在对于关系可以利用HashMap容器来存储这些数据,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2