我们如何划分字符串
中的子字符串就像我有字符串
String mainString="///Trade Time///Trade Number///Amount Rs.///";
现在我有其他字符串
String subString="Amount"
然后我想在第二个字符串 subString 的帮助下提取子字符串Amount Rs.
而不是通过任何其他方法提取它但是它应该通过两个参数提取,首先是我有索引否数量字符串和秒,直到下一个字符串///.
答案 0 :(得分:26)
首先获取子字符串的索引:
int startIndex = mainString.IndexOf(subString);
然后获取以下斜杠的索引:
int endIndex = mainString.IndexOf("///", startIndex);
然后你可以得到你想要的子串:
string amountString = mainString.Substring(startIndex, endIndex - startIndex);
答案 1 :(得分:1)
这应该可以解决你的问题:
mainString.substring(mainString.IndexOf("Amount Rs. "), "///")
其中mainString.IndexOf("Amount Rs. ")
是开始索引
&安培; "///"
是结束索引。
答案 2 :(得分:1)
string str = Regex.Match("///(?<String>[^/]*?" + subString + "[^/]*?)///").Groups["String"].Value;
应该使用String.Format
但@字符串中{x}
的确切用法赢得正则表达式我不记得了(你需要加倍{}
吗?)
N.B:这假设您不期待任何/
,因此可以稍微改进一下。
答案 3 :(得分:0)
作为@Guffa答案的补充,你可以用它来制作扩展方法:
注意:没有验证可确保提供的索引位于字符串的边界内。
public static class StringExtensions
{
public static string SubstringBetweenIndexes(string value, int startIndex, int endIndex)
{
return value.Substring(startIndex, endIndex - startIndex);
}
}