string wxwStrLink = nu;???
解决方案 »
- 编写一个窗体遮罩效果,提示:无法在 DLL“user32.dll”中找到名为“SetLayeredWindowattributes”的入口点
- 100分请教个简单问题.
- 程序进程偷停?请大家参与探讨一下究竟是怎么回事?
- [源代码]转换mp3音乐到exe可执行文件
- WebClient.UploadFile方法可不可以把文件上传到网站中
- 一个 C# 的Winform系统,欲找有丰富经验的C#高手合作
- 如何在.net下实现软件自动升级
- 急!!!!!!!!!!!!!!!chenchenglonger
- 自定义的窗体控件 如何实现旋转呢
- 我程序运行的时候,数据一会就连接不上拉,不知道为什么!急!!
- 请教高手一个问题(关于session为什么不到时间就过期了)
- 是我的错还是微软的错listBox.indexOf查找不到绑定第一列值
找到的话,当然好办
没有找到的话就是-1
你这里当然是一个死循环,找不到就是-1,++操作后也不过是个0,而end是一个大于0 的数字,这不是死循环是什么?
还有,indexof都是返回第一个匹配项的index值,你所要找的并不是你的程序找到的,它只能找到第一个“>”,那么它的index在你的程序里面应该是4,并不是末尾,当找了第一次之后,在循环进入第二此的时候就start就变成-1了给你一个修改意见:
在你的wxwContent与wxwDate后面加上“$”或是别的什么不会使用在你的字符串里的符号做结尾符,在计算end的时候就indexof("$")或是indexof('$')
然后你的程序的其他地方就不需要更改了
ArrayList dateList = new ArrayList();contentList.Add("900");//contentList[0]
contentList.Add("68");//contentList[1]
contentList.Add("1");//contentList[2]dateList.Add("2004-10-1");//dateList[0]
dateList.Add("2004-10-2");//dateList[1]
dateList.Add("2004-10-4");//dateList[2]//序号一一对应。并且contentList中的内容最好唯一,否则IndexOf会定位不准确//wxwStrLink是id号,比如说是1,68,这是用户选择的
string wxwStrLink = numUserInput;//假如用户选择的是68
// contentList.IndexOf("68") = 1;dateList.RemoveAt(1), 即移除dateList[1]
dateList.RemoveAt( contentList.IndexOf(wxwStrLink));
contentList.Remove( wxwStrLink );//删除"68"
可以用string.Split()方法来将字符串进行分组。试一下//----------分割字符串-------------------------------------string wxwContent ="<900><68><1>";
string wxwDate ="<2004-10-1 ><2004-10-2 ><2004-10-4 >";
string [] array1=wxwContent.Split(new Char[]{'<','>'});
string [] array2=wxwDate.Split(new Char[]{'<','>'});/* 如果没有错的话,数组内容应该变成
如array1的内容为{<,900,><,68,><,1,>}
数组长度为7
*/
//---------下面的是删除------------------------------------
int a=0;
foreach(string str in array1)
{
if(str=="68")
{
这里写删除array2[a]元素
}
a++;
}代码随手写的,未经测试,在此只提供一个思路,请高手指正!!
while(start<=end)
{
start = wxwContent.IndexOf("<",start,end-start);
start++;
count++;
}
改成
while(start<=end)
{ string a=wxwCountent.Substring(start,1);
if(a.Equals("<"))
{
count++;
}
start++;
}
用数组(arraylist,hashtable)就不用在这上面发帖了,没办法!
找到的话,当然好办
没有找到的话就是-1
可以这样
while(start<=end&&start!=-1)
{
start = wxwContent.IndexOf('<',start,end-start);
if(start!=-1)
{
startValue=start;
}
if(start==-1)
break;
start++;
count++;
}
其实还是用数组比较好一点.
int a =0
while(dateCount!=count&&start<=end&&start!=-1)
{
start = wxwDate.IndexOf('<',start,end-start);
if(start==-1)
{
break;
}
else
{
a=start;
}
start++;
dateCount++;
}
如:string wxwStrLink = “68”;
1。while(start<=end)======>>>>>>>>>while(start<end)
2。wxwDate.Remove(start-1,12);=====>>>>wxwDate = wxwDate.Remove(start-1,12);
wxwContent=wxwContent.Remove(wxwIndex-1,wxwStrLink.Length+2);