2015-10-06 4 views
0

VB.NET имеет метод Substring, который принимает начальный индекс и длину подстроки в качестве параметров. Можно ли извлечь подстроку из одного индекса в другой (вместо использования длины)?Извлечение подстроки из одного индекса в другой индекс

Например, если у меня была строка "1 + 1 = 2", и я хотел, чтобы извлечь все между + и = я хотел бы быть в состоянии сделать что-то вроде:

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

Причина я не» t хочу использовать длину, потому что я не уверен, сколько цифр число будет между + и =.

Является ли Regex моим единственным вариантом или я пропустил что-то простое?

+1

'String.substring (String.indexOf ("+") + 1, string.length - String.indexOf ("="))' –

+0

Это возвращал неверные данные. Он прервал бы целые числа, если они были более трех цифр, и по какой-то причине также будет включать знак =. @ Мартин Солес имел правильный ответ. Спасибо за комментарий! –

ответ

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

Это так просто, я не могу поверить, что я этого не видел. Я часто слишком сильно смотрю на простые проблемы. Благодаря! –

Смежные вопросы