【发布时间】:2014-02-19 10:14:47
【问题描述】:
我有一个字符串,我需要拆分成多个子字符串。现在根据我的条件,同时拆分成子字符串,我必须在字符串中搜索两个文本。这是我的两个文本..
-
1 . 2 To Other Mobiles(可能会根据子串需要的条件而改变) -
Total(这是子串的最后一个)
这是我的示例字符串内容
1 . 1 To Airtel Mobile
1 03/MAR/2013 16:06:31 9845070641 05:44 1.80 **
2 04/MAR/2013 10:00:29 9845096416 00:14 0.30 **
Total 25:28 9.30
1 . 2 To Other Mobiles
1 03/MAR/2013 06:41:06 9448485859 00:15 0.40 **
2 04/MAR/2013 18:57:47 9448367847 08:33 3.60 **
3 05/MAR/2013 18:57:05 9448485859 00:42 0.40 **
4 05/MAR/2013 20:13:19 9448367847 00:42 0.40 **
Total 34:33 18.00
1 . 3 To Fixed Landline
21 21/MAR/2013 11:59:35 08066000000 09:34 5.00
22 22/MAR/2013 11:31:33 08066000000 15:20 8.00
Total 01:35:23 54.00
基于这两个文本的索引,我将字符串分解为子字符串。现在根据我的情况,我必须将子字符串读取到直接文本,即Total。
但在我目前的代码中,我正在读取字符串到子字符串,直到最后一个 Total 文本。
这是我的代码:
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);
}
}
简而言之,我必须搜索第一个可搜索文本并开始阅读直到第二个文本。
【问题讨论】:
-
您之前的问题会发生什么。 stackoverflow.com/q/21874852/3184380
-
@Nimesh 它正在读取到文本“Total”的最后一个位置,而我需要它到直接的位置..
-
所以您不想在子字符串中包含“Total”?
-
即。如果字符串是“1 . 2 To Other Mobiles sdas askdka sdsajhsjdsj dsjdhajdhs Total 2541/-” 那么应该返回什么结果?
-
@Nimesh 是的,我不想包含并且只想阅读到第一个“总计”。无需获取最后一个“总计”的位置或索引。从“1 . 2 到其他”手机”,直到它变成“总计”。