我的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编辑过]