2014-11-03 28 views
1

我正在使用多種方法編寫程序,其中一個請求查找第二個字符串從第一個字符串的最右側區域開始的索引。查找索引,其中字符串2從字符串2的最右邊區域開始

該方法接受兩個字符串作爲參數,並返回第二個字符串在第一個字符串最右側區域開始位置的字符索引。

例如:

IN:密西西比,SS

OUT:5

這種方法的缺點是,我只能用charAtsubstringlengthString類,並沒有其他類的方法。

與本網站一些用戶的幫助下,我們來到了這一點:

public static int findInStr1(String s1, String s2) { 
    for (int i = 0; i < s1.length() - s2.length(); i++) { 
    boolean found = true; 
    for (int j = 0; j < s2.length(); j++) { 
     if (s1.charAt(i) != s2.charAt(j)) { 
      found = false; 
      break; 
     } 
    } 
    if (found) { 
     return i; 
    } 
    } 
    return -1; 
} 

上述方法給我哪裏串2點開始在串1,但是我想代碼的方法索引這給了我在哪裏串2點開始在串1

回答

1

的最右邊的區域可以調整你的方法從右側掃描的第一個字符串向左指數:

public static int findInStr1(String s1, String s2) { 
    for (int i = s1.length() - 1; i >= s2.length() - 1; i--) { 
    boolean found = true; 
    for (int j = s2.length() - 1; j >= 0; j--) { 
     if (s1.charAt(i-(s2.length()-1-j)) != s2.charAt(j)) { 
      found = false; 
      break; 
     } 
    } 
    if (found) { 
     return i-s2.length()+1; 
    } 
    } 
    return -1; 
} 
+0

這並獲得成功, 謝謝! – Zero 2014-11-03 07:31:34