2013-03-16 2 views
1

У меня есть строка, содержащая ссылки. Пример:Как отделить строку от нескольких частей C#

www.google.com;www.yahoo.com;www.gmail.com 

Мой вопрос, как я могу отделить эти ссылки, так что я могу добавить все ссылки по тегу <a> и в конце ссылки по тегу </a>?

я должен получить это:

<a>www.google.com</a>;<a>www.yahoo.com</a>;<a>www.gmail.com</a> 

Я буду благодарен, если решение будет простым, насколько это возможно, и использовать метод IndexOf.

ответ

5

Этот код должен делать эту работу: функция

var input = "www.google.com;www.yahoo.com;www.gmail.com"; 
var result = string.Join(";", input.Split(';').Select(x => string.Format("<a>{0}</a>",x))); 
+0

Большое спасибо! Оно работает! Но можете ли вы объяснить, что делает этот код? –

+1

1. Разделите свою строку на ';' caracter 2. Оберните каждый элемент в 3. Присоедините приведенные элементы, разделив их на ';' – Dima

+0

Теперь я понимаю это, спасибо! –

2

Самый простой способ:

var result = "<a>" + String.Join("</a>;<a>", input.Split(new char[] { ';' })) + "</a>"; 

Однако, он будет возвращать <a></a> для пустого ввода.

Объяснение:

input.Split(new char[] { ';' }) расколы входной строки по : характер.

String.Join("</a>;<a>", input.Split(new char[] { ';' })) соединяет элементы из раскола, используя </a>;<a> строку.

"<a>" + String.Join("</a>;<a>", input.Split(new char[] { ';' })) + "</a>"; добавляет дополнительные <a> спереди и </a> в конце результатов.

+0

Большое спасибо! Он отлично работает! Но можете ли вы объяснить этот код? (Я изучаю C# сейчас и не знаю ничего на этом языке ...) –

+0

Теперь я получил его, спасибо !!!! –

3
var links = "www.google.com;www.yahoo.com;www.gmail.com"; 
var result = String.Join(";", links.Split(';').Select(s => String.Format("<a>{0}</a>", s))); 
-1

Используйте сплит(). Разделить строку по символу; и хранить в массиве.

string[] arr = inputstring.Split(';'); 
string outputstring=string.Empty; 
for(int i=0;i<arr.Length;i++) 
    outputstring += "<a>"+arr[i]+"</a>;"; 

Поскольку вы не хотите, точка с запятой в конце

outputstring = outputstring .TrimEnd(';');

2

Попробуйте что-то вроде этого:

var result = String.Join(";", 
"www.google.com;www.yahoo.com;www.gmail.com" 
.Split(';') 
.Select(str => String.Format("<a>{0}</a>", str)));