關於以前對java和JS中的String類的lastIndexOf方法的誤解。

今天看JS的數組lastIndexOf()方法,看書上的例子,怎麼看都以爲不對勁。後來詳細讀了幾遍解釋,用java也測試了下,才發現,以前的理解徹底是錯誤的。java

String nums="03454666574349";  
System.out.println(nums.lastIndexOf("4"));      //  )12  
System.out.println(nums.lastIndexOf("4", 4));   //  f)12    //t)4  
System.out.println(nums.lastIndexOf("4", 6));   //  f)12    //t)4  
System.out.println(nums.lastIndexOf("4", 11));  //  f)12    //t)10

f) 指明的是我以前的理解,是錯誤的。
t) 是正確的結果。數組

之前覺得 s.lastIndexOf(searchingObj, startIndex) 是從s的索引startIndex開始,日後找最後那個searchingObj索引,事實證實是錯的。測試

JS的數組lastIndexOf方法也同樣。code

    事實上,lastIndexOf方法被設定爲:索引

  • startIndex開始 |看作把startIndex後面的全砍掉| ,再從後往前(逆向backward)尋找第一個searchingObj的位置;(有第二個參數startIndex時)
  • 從s.length-1索引開始(末尾), 從後往前(逆向backward)尋找第一個searchingObj的位置;(無第二個參數startIndex時)

再舉個例子:
java:ast

String s="012345678901234";
System.out.println(s.lastIndexOf("2", 4));

至關於: String s="012345678901234";
1). 先找到起始索引4;
2). 砍/忽略掉後面的字符;
3). 從後往前找第一個: 獲得結果:2class

JS:方法

s=[0,1,2,3,4,5,6,7,8,9,0,1,2,3,4]
s.lastIndexOf(2,4)
2

---[2014-08-08]---co

相關文章
相關標籤/搜索