小弟试着做一个搜索的东西
里面有比如“爱” "情"两个字的全文索引。爱 : 335,13;335,48;335,74;335,13;335,48;335,74;400,14;
情 : 335,14;335,63;335,37;335,63;400,15;然后我搜索:爱情 程序判断它的索引是否相邻。 显然 335,13; 335,14; 400,14;400,15;是符合的。请问如何用判断这两个字符是否有相邻的索引(335,13; 335,14;相邻要逗号前面的相同,逗号后面的是加1),有则返回逗号前面的数字。
string hits1=@"335,13;335,48;335,74;335,13;335,48;335,74;400,14;";string hits2=@"335,14;335,63;335,37;335,63;400,15;";
里面有比如“爱” "情"两个字的全文索引。爱 : 335,13;335,48;335,74;335,13;335,48;335,74;400,14;
情 : 335,14;335,63;335,37;335,63;400,15;然后我搜索:爱情 程序判断它的索引是否相邻。 显然 335,13; 335,14; 400,14;400,15;是符合的。请问如何用判断这两个字符是否有相邻的索引(335,13; 335,14;相邻要逗号前面的相同,逗号后面的是加1),有则返回逗号前面的数字。
string hits1=@"335,13;335,48;335,74;335,13;335,48;335,74;400,14;";string hits2=@"335,14;335,63;335,37;335,63;400,15;";
解决方案 »
- 未处理的“System.StackOverflowException”类型的异常出现在System.Data.dll 中.
- 怎么将自定义的字符串转换成时间
- 【俺又来啦,嘻嘻】求教VS 2005如何封装dll(给链接也行!!但一定要具体)
- 在VS中编写PDA程序,遇到技术问题,请高手指导下
- panel面板控制
- 要循环执行N个线程,调用一个方法,想让他们各执行各的~这个该么办?
- 两个问题,listview和检索
- 求救C#编程
- 请问如何制作VS.NET风格的菜单?
- 这样的sql语句怎么写?
- MDI多窗体编程时子窗体的MainMenu的菜单显示不出来,怎么回事。100分
- .net(C#)有没有好的操作com口的控件啊?
struct charPosition
{
public int LineNum;
public int ColNum;
}然后把检索出来的字符串,先用
string[] strItems = yourString.Split(';' );
分解成每个struct元素,然后对于每个item,创建成struct类型变量。
那么对于“爱”这个字,有一组struct类型变量,然后把每个变量的ColNum属性加一,在方向形成字符串,通过后形成的字符串去“情”这个字符串查找,如果找到,则进行输出,否则没有匹配。
c#不熟悉,想用字符操作。谁能给个字符串处理的。
生成数组,然后循环查找,比如根据hits1中的335,看hits2是否有335,再判断逗号后面的是否是加1的。
string[] hits2s = hits2.split(';');for (int i=0; i<hits1s.Length; i++)
{
//分离
string s = hits1s[i];
string s1 = s.substring(0, s.IndexOf(","));
string s2 = s.Romove(0, s1.Length + 1);
for (int j=0; j<hits2s.Length; j++)
{
//这里和上面一样
//这里直接比较即可
}
}
string hits1=@"335,13;335,48;335,74;335,13;335,48;335,74;400,14;";
string hits2=@"335,14;335,63;335,37;335,63;400,15;";
string tStr = hits1;
bool IsDone = false;
do
{
int cIndex = tStr.IndexOf(";");
string word = tStr.Substring(0, cIndex - 1);
word += (char)((int)tStr[cIndex - 1] + 1);
if(cIndex < tStr.Length - 1)
{
tStr = tStr.Substring(cIndex + 1);
}
else
{
IsDone = true;
}
if(hits2.IndexOf(word) > -1)
MessageBox.Show(word.Substring(0, word.IndexOf(","))); //这里返回","前面的数字.
}while(IsDone == false);