2013-03-16 69 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

非常感谢!有用!但是,你能解释一下这段代码的用法吗? – 2013-03-16 17:49:00

+1

1.按';'分割字符串caracter 2.包装每个元素 3.加入结果元素,用';'分隔它们。 – Dima 2013-03-16 17:56:45

+0

现在我明白了,谢谢! – 2013-03-16 18:03:17

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#,不知道这个语言中的每一件事......) – 2013-03-16 17:52:57

+0

现在我明白了,谢谢你! – 2013-03-16 18:02:36

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))); 
相关问题