国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

算法練習之從String.indexOf的模擬實現開始

2019-10-29 21:47:38
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了算法練習從String.indexOf的模擬實現開始,需要的朋友可以參考下

String.indexOf的模擬實現,沒想象中有多么高深的查找算法,就是最普通的遍歷查找

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

  1. /**  
  2. * 查找字符串pattern在str中第一次出現的位置  
  3. * @param str  
  4. * @param pattern  
  5. * @return  
  6. */ 
  7. public int firstIndexOf(String str, String pattern) {  
  8. for (int i = 0; i < (str.length() - pattern.length()); i++) {  
  9. int j = 0;  
  10. while (j < pattern.length()) {  
  11. if (str.charAt(i + j) != pattern.charAt(j)) break;  
  12. j++;  
  13. }  
  14. if(j==pattern.length()) return i;  
  15. }  
  16. return -1;  
  17. }  
  18.  
  19. /**  
  20. * 查找字符串pattern在str中最后一次出現的位置  
  21. * @param str  
  22. * @param pattern  
  23. * @return  
  24. */ 
  25. public int lastIndexOf(String str, String pattern) {  
  26. for (int i = str.length() - pattern.length(); i >= 0; i--) {  
  27. int j = 0;  
  28. while (j < pattern.length()) {  
  29. if (str.charAt(i + j) != pattern.charAt(j)) break;  
  30. j++;  
  31. }  
  32. if (j == pattern.length()) return i;  
  33. }  
  34. return -1;  
  35. }  
  36.  
  37. /**  
  38. * 查找字符串pattern在str中出現的位置  
  39. * @param str  
  40. * @param pattern  
  41. * @return  
  42. */ 
  43. public List<Integer> indexOf(String str, String pattern) {  
  44. List<Integer> indexs = new ArrayList<Integer>();  
  45. for (int i = 0; i < (str.length() - pattern.length()); i++) {  
  46. int j = 0;  
  47. while (j < pattern.length()) {  
  48. if (str.charAt(i + j) != pattern.charAt(j)) break;  
  49. j++;  
  50. }  
  51. if (j == pattern.length()) indexs.add(i);  
  52. }  
  53. return indexs;  



同樣更常用的String.contains方法實際上就是調用的String.indexOf實現

  1. /**  
  2. * 判斷字符串pattern在str中是否存在  
  3. * @param str  
  4. * @param pattern  
  5. * @return  
  6. */ 
  7. public boolean contains(String str, String pattern) {  
  8. return firstIndexOf(str, pattern) != -1;  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大化| 乌鲁木齐市| 新竹县| 麻城市| 滁州市| 白朗县| 台南县| 门头沟区| 辽宁省| 万全县| 宜州市| 德格县| 霍山县| 景谷| 东安县| 莫力| 广宗县| 万州区| 平阴县| 平武县| 富蕴县| 顺昌县| 竹山县| 潮州市| 宾川县| 定南县| 商丘市| 孝感市| 土默特右旗| 唐河县| 安福县| 汉阴县| 桓台县| 蒙自县| 星子县| 九寨沟县| 大名县| 南和县| 武宣县| 建瓯市| 宜春市|