c# - string.LastIndexOf() 错误?

标签 c# string indexof

有谁知道为什么:

"  <exception>".LastIndexOf("<",0) returns -1 (wrong)

同时

"  <exception>".LastIndexOf("<") returns 2 (right)

"<exception>".LastIndexOf("<",0) returns 0 (right)

这是错误还是我误解了 LastIndexOf 方法?

最佳答案

您误解了 LastIndexOf 的特定重载方法。

docs说明如下:

The search starts at a specified character position and proceeds backward toward the beginning of the string.

请注意它说 backward .所以,如果你从位置 0 开始, 没有 "<"该位置的子字符串或该位置的前面,因此结果为 -1 .

相反,如果您使用只接受子字符串的重载,搜索将从字符串的末尾开始,因此可以正确找到指定的子字符串。

关于c# - string.LastIndexOf() 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421160/

相关文章:

c# - 将水印图像添​​加到图像

c# - 通过提交按钮传递值?

javascript - 在 IE8 中使用 Javascript 将字符串拆分为数组

c - 在处理 strcpy(string, "") 时,字符串未被正确清空和分配

Javascript 连接/拆分替代语法

JavaScript - 编写 indexOf 和 each

javascript - 在 HTML 文档中查找单词并为该元素分配 ID/类

c# - 无法找到 ChooserEventArgs 类

c# - 将 invalidValue 分配给 Enum 变量(为什么这不抛出异常?)

c# - 为什么字符串作为值类型,即使它是 C# 中的引用类型