最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

算法練習(xí)之從String.indexOf的模擬實(shí)現(xiàn)開(kāi)始

 更新時(shí)間:2014年12月25日 14:24:28   投稿:mdxy-dxy  
這篇文章主要介紹了算法練習(xí)從String.indexOf的模擬實(shí)現(xiàn)開(kāi)始,需要的朋友可以參考下

String.indexOf的模擬實(shí)現(xiàn),沒(méi)想象中有多么高深的查找算法,就是最普通的遍歷查找

思路:先找到第一個(gè)相同的字符,然后依次比較后面的字符,若都相等則表示查找成功

/** 
   * 查找字符串pattern在str中第一次出現(xiàn)的位置 
   * @param str 
   * @param pattern 
   * @return 
   */ 
  public int firstIndexOf(String str, String pattern) { 
    for (int i = 0; i < (str.length() - pattern.length()); i++) { 
      int j = 0; 
      while (j < pattern.length()) { 
        if (str.charAt(i + j) != pattern.charAt(j)) break; 
        j++; 
      } 
      if(j==pattern.length()) return i; 
    } 
    return -1; 
  } 
 
  /** 
   * 查找字符串pattern在str中最后一次出現(xiàn)的位置 
   * @param str 
   * @param pattern 
   * @return 
   */ 
  public int lastIndexOf(String str, String pattern) { 
    for (int i = str.length() - pattern.length(); i >= 0; i--) { 
      int j = 0; 
      while (j < pattern.length()) { 
        if (str.charAt(i + j) != pattern.charAt(j)) break; 
        j++; 
      } 
      if (j == pattern.length()) return i; 
    } 
    return -1; 
  } 
 
  /** 
   * 查找字符串pattern在str中出現(xiàn)的位置 
   * @param str 
   * @param pattern 
   * @return 
   */ 
  public List<Integer> indexOf(String str, String pattern) { 
    List<Integer> indexs = new ArrayList<Integer>(); 
    for (int i = 0; i < (str.length() - pattern.length()); i++) { 
      int j = 0; 
      while (j < pattern.length()) { 
        if (str.charAt(i + j) != pattern.charAt(j)) break; 
        j++; 
      } 
      if (j == pattern.length()) indexs.add(i); 
    } 
    return indexs; 
  } 

同樣更常用的String.contains方法實(shí)際上就是調(diào)用的String.indexOf實(shí)現(xiàn)

/** 
   * 判斷字符串pattern在str中是否存在 
   * @param str 
   * @param pattern 
   * @return 
   */ 
  public boolean contains(String str, String pattern) { 
    return firstIndexOf(str, pattern) != -1; 
  } 

相關(guān)文章

最新評(píng)論

嵊州市| 公主岭市| 临夏县| 绵竹市| 乌拉特后旗| 兰考县| 洛南县| 青铜峡市| 密云县| 莒南县| 朝阳县| 乃东县| 罗江县| 平湖市| 开远市| 驻马店市| 横峰县| 壶关县| 张家界市| 上思县| 玉门市| 封开县| 哈尔滨市| 麻栗坡县| 枣阳市| 南宫市| 车险| 利川市| 红河县| 西昌市| 措美县| 东光县| 自贡市| 边坝县| 乌鲁木齐市| 贡山| 安泽县| 上犹县| 横山县| 南和县| 邹平县|