回答
我無恥地從this question中剔除了這個例子,並將它從C#轉換爲VB.net。
Public Function GetNthIndex(s As String, t As Char, n As Integer) As Integer
Dim count As Integer = 0
For i As Integer = 0 To s.Length - 1
If s(i) = t Then
count += 1
If count = n Then
Return i
End If
End If
Next
Return -1
End Function
效率沒有羞恥! –
這裏有一個與Linq做的方法。
Public Function GetNthIndex(searchString As String, charToFind As Char, n As Integer) As Integer
Dim charIndexPair = searchString.Select(Function(c,i) new with {.Character = c, .Index = i}) _
.Where(Function(x) x.Character = charToFind) _
.ElementAtOrDefault(n-1)
Return If(charIndexPair IsNot Nothing, charIndexPair.Index, -1)
End Function
用法:
Dim searchString As String = "Assessment"
Dim index As Integer = GetNthIndex(searchString, "s", 4) 'Returns 5
謝謝Meta-Knight – user1307346
這是否考慮到*字符串中沒有* n個事件?如果他們要求第四次發生但是隻有三次? –
@ChrisDunaway:我編輯了代碼,以便在沒有n次出現的情況下返回-1。 –
如果你想更快:
Public Function NthIndexOf(s As String, c As Char, n As Integer) As Integer
Dim i As Integer = -1
Dim count As Integer = 0
While count < n AndAlso i >= 0
i = s.IndexOf(c, i + 1)
count += 1
End While
Return i
End Function
雖然它比邁克C'S回答稍微慢一點,如果你正在尋找第N個「一「例如在一連串的」a「中。
編輯:根據spacemonkeys的評論進行調整。 Andew年代
如果第一個chararcter(0)是你正在尋找的,並且你正在尋找1,這會不會錯過它(i + 1) – spacemonkeys
@spacemonkeys好點。 –
我的版本,但我相信這是考慮到,如果第一個字符是你正在尋找
Public Function GetNthIndexStringFunc(s As String, t As String, n As Integer) As Integer
Dim newFound As Integer = -1
For i As Integer = 1 To n
newFound = s.IndexOf(t, newFound + 1)
If newFound = -1 Then
Return newFound
End If
Next
Return newFound
End Function
- 1. 找到字符串數組中字符串的最快方法
- 2. 找到字符串中多個短語的最佳方法?
- 3. 在另一個字符串中查找字符串子集的最快方法?
- 4. 從字符串列表中找到最快的字符串
- 5. 最快的方法 - 字符串組件
- 6. 搜索字符串的最快方法?
- 7. 最快的方法,以消除第一個字符的字符串
- 8. 在VBA中替換字符串中字符的最快方法
- 9. 字符串的第一個字符和最後一個字符
- 10. 找到字符串數組中的字符串的最快算法?
- 11. 在C#中反向字符串的最快方法.net
- 12. 在行中找到第n個字符串或子字符串
- 13. 從字符串中刪除字符的最快方法
- 14. 查找分隔字符串中的第n個字符串
- 15. Matlab:在最後一個字符處分割字符串的最快方法
- 16. 在文件中查找字符串的最快方法
- 17. 找到n個數字的gcd最快的方法是什麼?
- 18. 將字符串中第一個字母大寫的最快方法(基數)
- 19. 從字符串數組中創建一個字符串。最快的方法?
- 20. 在Android中尋找最快的方式字符串到JSONObject
- 21. 如何在字符串中找到第n個字符?
- 22. 從第二個字符串中刪除第一個字符串中所有字符的最有效方法?
- 23. javascript:找到字符串內的字符串的第二個最後的外觀?
- 24. SAS:如何在字符串中找到第n個字符/字符組的第n個實例?
- 25. 從PHP中的字符串中刪除特殊字符串的最好和最快的方法?
- 26. 從R中的字符串中提取最後n個字符
- 27. 在java中找到字符串中第n個子字符串的出現?
- 28. 字符串中的第N個字
- 29. 去掉字符串中的最後一個字符和第一個字符
- 30. 刪除字符串中的最後一個字符和第一個字符
專業的方法是得到報酬的字符。 – mclark1129
最短的代碼,最快的算法,最高效的內存算法,最可讀的代碼? –
@SteveDog - 請儘量短而快。 – user1307346