| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 806 人关注过本帖
标题:关于C#函数的问题!(问题已经解决)
只看楼主 加入收藏
zaneking
Rank: 1
等 级:新手上路
帖 子:304
专家分:0
注 册:2006-9-4
收藏
 问题点数:0 回复次数:13 
关于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
xxxxx52
Rank: 4
等 级:贵宾
威 望:13
帖 子:689
专家分:0
注 册:2006-4-30
收藏
得分:0 
一点注释也没有~
要么你给我说说上上面那一大坨是什么意思~

好的资料下载网站http:///in.asp?id=xuelion2006 嘿嘿帮点一下拉~
2006-09-06 16:46
fiend
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-8-11
收藏
得分:0 

不明白你需要的功能,咋帮你?

2006-09-06 22:08
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
收藏
得分:0 
天杀的,为什么每次我都只能看到上面一点点内容,下面的都看不到!!

寻求挑战,追求完美 Oh,my god!
2006-09-06 23:14
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
快速回复:关于C#函数的问题!(问题已经解决)
数据加载中...
 
   



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

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