2013-08-26 5 views
0

Я хочу вставить слово в существующее слово? Оба являются строками.Вставка строки внутри строки

Например:

Учитывая Струнный слово:

HELLO SAMPLE SENTENCE 

я хочу, чтобы вставить слово I AM A так что мой результат будет:

HELLO I AM A SAMPLE SENTENCE 

я вставив здесь на основе слова SAMPLE. Поэтому ввод начинается до слова SAMPLE. Это возможно?

+1

Какие логические критерии вы используете для принятия этого решения? –

+0

это возможно с RegEx? я плохо разбираюсь в RegEx, но я думаю, что это связано с этим. –

ответ

3

Основываясь на описании вашей логики (который ISN» t, котор нужно пойти дальше), я использовал бы:

Dim input As String = "HELLO SAMPLE SENTENCE" 
Dim iSample As Integer = input.IndexOf("SAMPLE") 
Dim output As String = input.Insert(iSample, "I AM A ") 

Это использует функцию BCL String.Insert, которая просто вставляет строку в другую строку в определенном месте.

+2

Nice. Не перекодируйте '6', но используйте' input.IndexOf («SAMPLE») вместо –

+0

Спасибо, что это сработало. Это будет добавлено к моим заметкам. Я все еще изучаю основы. –

+0

@ Jacob, хороший момент, я огляделся вокруг чего-то, связанного с логикой того, куда он хотел вставить, пропустил это как-то. Ред. – richardtallent

-1

Если я правильно помню, вы можете использовать функцию String.split() на своей строке.

См. DotNetPerls' страница Сплит здесь.

Вы можете разделить строку на массив, а затем вставить нужную строку в массив, а затем объединить их с помощью String.Join() (спасибо Monty, я не часто использую Visual Basic, я забыл это :)).

Надеется, что это поможет :)

+0

Вы также можете присоединиться, используя 'String.Join()' (http://msdn.microsoft.com/en-us/library/system.string.join.aspx) –

1

Создать такую ​​функцию:

Function InsertBefore(sentence As String, find As String, textToInsert As String 
    Return sentence.Replace(find, textToInsert+Find) 
End Function 

И называть это так:

sentence = InsertBefore("HELLO SAMPLE SENTENCE", " SAMPLE ", "I AM A") 
Смежные вопросы