java吧 关注:1,305,838贴子:12,875,109
  • 3回复贴,共1

大家帮忙看段代码

只看楼主收藏回复


这是一个用来检查字符串里面有没有重复的字符的方法。这个for循环里面的东西不太懂,谁能帮我理解一下吗~


1楼2013-01-08 06:06回复
    将数组的值放到set里面去 比较下size()和length就知道有没重复了.


    3楼2013-01-08 09:12
    回复
      2026-07-14 12:51:28
      广告
      不感兴趣
      开通SVIP免广告
      如果是一样的字符,val得到的值肯定是一样的,如果在循环中出现过一样的字符,那么char_set[val]的值就是true,会返回false.如果循环中把有得到的val都不一样,那么就会返回true


      IP属地:河北4楼2013-01-08 09:24
      回复
        这段东西很错, 建议别学.
        他做的东西就是开 256 个 boolean, 逐个字找, 找到了就将字转成数字去设定 true, 那样下次就知道这字出现过了.
        不过首先 Java 的 char 是双字节的, 0-65535. 其次是 Java 已经由 UCS2 升级到 UTF-16, 一个字 codePoint 可能占多个 char, 即使只考虑双 char 也要 4G 的矩阵, 早就爆了.
        稳妥的做法始终都是逐个字点往下搜. 效能上等真的慢了再优化不晚.


        5楼2013-01-08 09:25
        回复