| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 806 人关注过本帖
标题:关于C#函数的问题!(问题已经解决)
取消只看楼主 加入收藏
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
 问题点数:0 回复次数:8 
关于C#函数的问题!(问题已经解决)

我的IF嵌套看着太麻烦,请各位帮我把代码减少一下,谢谢各位!
public String GetSearchText(String content, String findTxt)
{
//return content.Replace(findTxt, "<b>" + findTxt + "</b>");
String[] arrTxt = content.Split(",".ToCharArray());
String[] arrfindTxt = findTxt.Split(",".ToCharArray());
String result = "";
//int len = arrTxt.Length;
for (int j = 0; j < arrTxt.Length; j++)
{
for (int k = 0; k < arrfindTxt.Length; k++)
{
if (arrTxt[j].IndexOf(arrfindTxt[k]) > -1)
{
arrTxt[j] = arrTxt[j].Replace(arrfindTxt[k], "<b>" + arrfindTxt[k] + "</b>");
if (j == 0)
{
if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) > -1 || arrTxt[j + 2].IndexOf(arrfindTxt[k]) > -1)
result += arrTxt[j];
else
result += arrTxt[j] + arrTxt[j + 1];
}
else if (j == arrTxt.Length - 1)
{
if (arrTxt[j - 1].IndexOf(arrfindTxt[k]) > -1)
result += arrTxt[j];
else
result += arrTxt[j - 1] + arrTxt[j];
}
else
{
if (arrTxt[j - 1].IndexOf(arrfindTxt[k]) < 0)
{
if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) > -1 || arrTxt[j + 2].IndexOf(arrfindTxt[k]) > -1)
result += arrTxt[j - 1] + arrTxt[j];
else
result += arrTxt[j - 1] + arrTxt[j] + arrTxt[j + 1];
}
else if (arrTxt[j - 1].IndexOf(arrfindTxt[k]) > -1)
{
if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) > -1 || arrTxt[j + 2].IndexOf(arrfindTxt[k]) > -1)
result += arrTxt[j];
else if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) < 0 && arrTxt[j + 2].IndexOf(arrfindTxt[k]) < 0)
result += arrTxt[j] + arrTxt[j + 1];
else
result += "";
}
else
result += "";
}
}
//switch (j)
//{
// case 0:
// result += arrTxt[j] + arrTxt[j + 1];
// break;

// case len:
// result += arrTxt[j - 1] + arrTxt[j];
// break;

// default:
// result += arrTxt[j - 1] + arrTxt[j] + arrTxt[j + 1];
// break;

//}
}
}
return result;
}

[此贴子已经被作者于2006-9-8 13:25:35编辑过]

搜索更多相关主题的帖子: 函数 
2006-09-06 11:31
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 

怎么没人帮我呢,坛主呢,帮帮我啊,我急啊!!!!!!!!!!!!!!!!!!!!!


2006-09-06 12:51
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 

我的意思是,上面的代码有重复的,能不能把重复的代码都放在一起,然后调用.
现在看着太乱.


2006-09-08 08:39
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 

Response.Write(GetSearchText("请输入标题及时间,标题a,UUUU,QQQQ,RRRR,标题b,标题5,标题6,标题c,DDDD,EEEE,FFFF,GGGG,标题d,标题e,标题f,标题g,HHHH,标题h", "标题,a"));
如果输出的是"标题"和"a",那么当标题和a在一个字符串的时候,他就会输出两遍,谁能帮我解决这个问题,我想输出的就是一遍,而且都要加粗.
你们看看就是这个意思:
 /// <summary>
/// 查询文字并加粗
/// </summary>
/// <param name="content">待处理文本</param>
/// <param name="findTxt">匹配文字,多词用逗号分割</param>
/// <returns></returns>
public String GetSearchText(String content, String findTxt)
{
//return content.Replace(findTxt, "<b>" + findTxt + "</b>");
String[] arrTxt = content.Split(",".ToCharArray());
String[] arrfindTxt = findTxt.Split(",".ToCharArray());
String result = "";
//int len = arrTxt.Length;
for (int j = 0; j < arrTxt.Length; j++)
{
for (int k = 0; k < arrfindTxt.Length; k++)
{
if (arrTxt[j].IndexOf(arrfindTxt[k]) > -1)
{
arrTxt[j] = arrTxt[j].Replace(arrfindTxt[k], "<b>" + arrfindTxt[k] + "</b>");

//当findTxt在第一个字符串中出现时
if (j == 0)
{
if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) > -1 || arrTxt[j + 2].IndexOf(arrfindTxt[k]) > -1)
result +=arrTxt[j];
else
result += arrTxt[j] + "," + arrTxt[j + 1];
}
//当findTxt在最后一个字符串中出现时
else if (j == arrTxt.Length - 1)
{
if (arrTxt[j - 1].IndexOf(arrfindTxt[k]) > -1)
result += "," + arrTxt[j];
else
result += "," + arrTxt[j - 1] + "," + arrTxt[j];
}
//当findTxt在其他字符串中出现时
else
{
//进行字符串筛选,如果有重复的,只显示一个
if (arrTxt[j - 1].IndexOf(arrfindTxt[k]) < 0)
{
if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) > -1 || arrTxt[j + 2].IndexOf(arrfindTxt[k]) > -1)
result += "," + arrTxt[j - 1] + "," + arrTxt[j];
else
result += "," + arrTxt[j - 1] + "," + arrTxt[j] + "," + arrTxt[j + 1];
}
else if (arrTxt[j - 1].IndexOf(arrfindTxt[k]) > -1)
{
if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) > -1 || arrTxt[j + 2].IndexOf(arrfindTxt[k]) > -1)
result += "," + arrTxt[j];
else if (arrTxt[j + 1].IndexOf(arrfindTxt[k]) < 0 && arrTxt[j + 2].IndexOf(arrfindTxt[k]) < 0)
result += "," + arrTxt[j] + "," +arrTxt[j + 1];
}
}
}
}
}
return result;
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(GetSearchText("请输入标题及时间,标题a,UUUU,QQQQ,RRRR,标题b,标题5,标题6,标题c,DDDD,EEEE,FFFF,GGGG,标题d,标题e,标题f,标题g,HHHH,标题h", "标题,a"));
}

[此贴子已经被作者于2006-9-8 10:39:45编辑过]


2006-09-08 08:42
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 
谁能帮帮我这个新问题啊,谢谢各位大侠!!!

2006-09-08 10:40
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 
各位大侠都干什么呢,帮帮我啊,坛主呢,帮帮我啊!!!

2006-09-08 12:30
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 
上面的输出结果是:请输入标题及时间,标题a,UUUU,请输入标题及时间,标题a,UUUU,RRRR,标题b,标题5,标题6,标题c,DDDD,GGGG,标题d,标题e,标题f,标题g,HHHH,标题h
而我想要的结果是:请输入标题及时间,标题a,UUUU,RRRR,标题b,标题5,标题6,标题c,DDDD,GGGG,标题d,标题e,标题f,标题g,HHHH,标题h

而且标题和a 都要是加粗的
谁能告诉我代码应该怎么写..
谢谢了!!

2006-09-08 12:33
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 
不是啊,这么做就不能把他前面和后面的提出来了,

2006-09-08 13:21
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
得分:0 
太谢谢你了...谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢

2006-09-08 13:25
快速回复:关于C#函数的问题!(问题已经解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055583 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved