我有一个字符串,其中包含一个子字符串其中一个是“1.2 To Other Mobiles”,另一个是“Total”。现在根据我的要求,我必须阅读第一个子字符串之间的内容,即“.1.2。对于其他手机“和”总计“。我是通过在c#中使用代码来实现的。
int startPosition = currentText.IndexOf("1 . 2 To Other Mobiles");
int endPosition = currentText.IndexOf("Total");
string result = currentText.Substring(startPosition, endPosition - startPosition);
但是我面临的问题是“Total”在我的子串中很多次。我必须在startPosition长度之后读取最后一个位置长度,即“Total”。 怎么做?
答案 0 :(得分:2)
我必须在startPosition长度到最后位置长度
之后阅读
使用LastIndexOf
:
string search1 = "1 . 2 To Other Mobiles";
string search2 = "Total";
int startPosition = currentText.IndexOf(search1);
if(startPosition >= 0)
{
startPosition += search1.Length;
int endPosition = currentText.LastIndexOf(search2);
if (endPosition > startPosition)
{
string result = currentText.Substring(startPosition, endPosition - startPosition);
}
}
如果我只需要阅读第一个“总计”,我该怎么办。
然后使用IndexOf
代替:
// ...
int endPosition = currentText.IndexOf(search2);
if (endPosition > startPosition)
{
string result = currentText.Substring(startPosition, endPosition - startPosition);
}
答案 1 :(得分:1)
试试这个。
int startPosition = currentText.IndexOf("1 . 2 To Other Mobiles");
int endPosition = currentText.LastIndexOf("Total") + 5;
string result = currentText.Substring(startPosition, endPosition - startPosition);
答案 2 :(得分:0)
您可以使用String.LastIndexOf()
答案 3 :(得分:0)
问题:您没有添加第一个搜索字符串的长度1 . 2 To Other MobilessubstringTotal
解决方案:
string currentText = "1 . 2 To Other MobilessubstringTotal";
string search1="1 . 2 To Other Mobiles";
string search2="Total";
int startPosition = currentText.IndexOf(search1);
int endPosition = currentText.IndexOf(search2);
string result = currentText.Substring((startPosition+search1.Length), endPosition - (startPosition+search1.Length));
<强>输出:强>
result =&gt; substring
答案 4 :(得分:0)
你是说这个?
string currentText = "1 . 2 To Other Mobiles fkldsjkfkjslfklsdfjk Total";
string text = "1 . 2 To Other Mobiles";
int startPosition = currentText.IndexOf("1 . 2 To Other Mobiles");
int endPosition = currentText.IndexOf("Total");
string result = currentText.Substring(startPosition + text.Length, endPosition - (startPosition + text.Length));
在文本“1.2。其他手机fkldsjkfkjslfklsdfjk Total”;
输出将是:
fkldsjkfkjslfklsdfjk