首页 新闻 会员 周边 捐助

处理字符串问题!!!

0
悬赏园豆:10 [已解决问题] 解决于 2012-02-16 16:21

string str = "www.baidu.com,百度,谷歌,www.google.com,www.cuctv.com,视友网,www.zhaopin.com,智联";

以<a href=“www.baidu.com”>百度</a>,<a href=“www.google.com”>谷歌</a>

这种形式输出,怎么截取啊?

luckydd的主页 luckydd | 初学一级 | 园豆:77
提问于:2012-02-16 11:06
< >
分享
最佳答案
0

按逗号分隔,生成一个数组。然后遍历,每两个生成一组,这一组就有一个是网址一个是名称了,你看有www开头的是网址,就能组成你要的格式了。

收获园豆:10
LCM | 大侠五级 |园豆:6876 | 2012-02-16 11:09

string str = "www.baidu.com,百度,谷歌,www.google.com,www.cuctv.com,视友网,www.zhaopin.com,智联";
            string[] arr = str.Split(',');
            for (int i = 0; i < arr.Length; i++)
            {
                Response.Write(arr[i]+"<br/>");
            }

遍历数组后怎么把两个生成一组啊?

luckydd | 园豆:77 (初学一级) | 2012-02-16 11:26

@blog_doudou: 

const string str = "www.baidu.com,百度,谷歌,www.google.com,www.cuctv.com,视友网,www.zhaopin.com,智联";
string[] arr = str.Split(',');
for (int i = 0; i < arr.Length/2; i++)
{
//Response.Write(arr[i] + "<br/>");
var str1 = arr[2*i];
var str2 = arr[2*i + 1];
string url;
string name;
if(str1.IndexOf("www.", System.StringComparison.Ordinal)>=0)
{
url = str1;
name = str2;
}
else
{
url = str2;
name = str1;
}
Response.Write(string.Format("<a href=\"{0}\">{1}</a>",url,name));
}
LCM | 园豆:6876 (大侠五级) | 2012-02-16 12:22

@LCM: 超出索引了。

string str = "www.baidu.com,百度,谷歌,www.google.com,www.cuctv.com,视友网,www.zhaopin.com,智联";
string[] arr = str.Split(',');
for (int i = 0; i < arr.Length - 1; i++)
{
string str1 = arr[i];
string str2 = arr[i + 1];
string url;
string name;
if (str1.IndexOf("www.", System.StringComparison.Ordinal) >= 0)
{
url = str1;
name = str2;
}
else
{
url = str2;
name = str1;
}
string link = string.Format("<a href=\"{0}\">{1}</a>", url, name);
link = Server.HtmlEncode(link);
Response.Write(link);
i++;
}

终于有一种对的了。
luckydd | 园豆:77 (初学一级) | 2012-02-16 15:49

@blog_doudou: 什么情况下超出索引?

LCM | 园豆:6876 (大侠五级) | 2012-02-16 15:58

@LCM: 就你写的那段就超出索引,下面这段可以,你运行下哈

luckydd | 园豆:77 (初学一级) | 2012-02-16 16:20
其他回答(2)
0

这个每两个生成一组,是二维数组。这是截取,再就是查找了。按www开头的查找。

悟行 | 园豆:12559 (专家六级) | 2012-02-16 11:16
0

虽然很长很难读,不过看着真的好爽。

string str = "www.baidu.com,百度,谷歌,www.google.com,www.cuctv.com,视友网,www.zhaopin.com,智联";
var pattern = "<a href=\"{0}\">{1}</a>";
string output = string.Join(",", str.Split(',')
.Select((s, i) => new { Content = s, Order = i, IsAddress = s.StartsWith("www.") })
.GroupBy(a => a.Order / 2)
.Select(g => string.Format(pattern, g.Single(a => a.IsAddress).Content, g.Single(a => !a.IsAddress).Content)));

另外我觉得你似乎应该把输出结果里的href="www.baidu.com" 这样的都改成href="http://www.baidu.com",否则点击之后会访问http://www.yoursite.com/www.baidu.com了。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-02-16 13:08

是啊,我都看不懂,对于我这样的水平,还是先把简单的方法学会吧↖(^ω^)↗

支持(0) 反对(0) luckydd | 园豆:77 (初学一级) | 2012-02-16 13:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册