2015-10-06 87 views
0

VB.NET有一个Substring方法,它将起始索引和子字符串的长度作为参数。是否有可能从一个索引提取一个子串到另一个(而不是使用长度)?从一个索引提取子字符串到另一个索引

举例来说,如果我有一个字符串"1 + 1 = 2",我想提取+=我希望能够做这样的事情之间的一切:

string.Substring(string.IndexOf("+") + 1, string.IndexOf("=") - 1) 

的原因我不”要使用长度是因为我不确定在+=之间的数字是多少个数字。

是正则表达式我唯一的选择,还是我缺少一些简单的东西?

+1

'string.Substring(string.IndexOf( “+”)+ 1,string.length减 - string.IndexOf( “=”))' –

+0

这是返回错误的数据。如果它们超过3位数字,它将切断整数,并且由于某种原因也会包括=号。 @Martin鞋底有正确的答案。感谢评论,但! –

回答

1

你有所有的东西来找出你想要的子串的长度。你知道两个端点在哪里。从中可以计算出你需要的字符数。

Dim Value = "1 + 1 = 2" 
Dim Start = Value.IndexOf("+") + 1 '3 in this example 
Dim Last = Value.IndexOf("=") - 1 '5 in this example 
Dim Length = Last - Start + 1 '5 - 3 + 1 = 3 
Dim Result = Value.SubString(Start, Length) 
+0

这很简单,我不能相信我没有看到这一点。我经常看到一些简单的问题。谢谢! –

相关问题