对数组循环做一次搜索,写成一个函数,应该很简单的

解决方案 »

  1.   

    public static int byteIndexOf(byte[]b,String s,int start){
    return byteIndexOf(b,s.getBytes(),start);
    }
    public static int byteIndexOf(byte[]b,byte[]s,int start){
    int i;
    if(s.length==0){
    return 0;
    }
    int max=b.length-s.length;
    if(max<0)
    return -1;
    if(start>max)
    return -1;
    if(start<0)
        start=0;
    search:
         for(i=start;i<=max;i++){
          if(b[i]==s[0]){
          int k=1;
          while(k<s.length){
          if(b[k+i]!=s[k]){
          continue search;
          }
          k++;
          }
          return i;
          }
         }
     return -1;
        }