用两个字符做分隔符时,总多出一个空值来
string[] ss="11aa2222".Split("aa".ToCharArray());
结果是:
ss[0]="11";
ss[1]="";
ss[2]="222";为什么多出个ss[1]为空?我想得到的是11和2222其实只有用一个字符做分隔符时才能得到正常结果。该如何用多个字符做分隔符?
string[] ss="11aa2222".Split("aa".ToCharArray());
结果是:
ss[0]="11";
ss[1]="";
ss[2]="222";为什么多出个ss[1]为空?我想得到的是11和2222其实只有用一个字符做分隔符时才能得到正常结果。该如何用多个字符做分隔符?
解决方案 »
- ado access update 存储过程的问题
- 怎样实现DataList这种效果(急!实现后马上结贴!)
- 程序引用了“Interop.Excel.dll”实现导出Excel功能,但部署时服务器不装office可以吗?
- select 语句问题?
- 自定义控件出现“未将对象引用设置到对象的实例"
- 网上下载的asp.net源码(vb.net)没有项目文件以及解决方案文件,怎样用vs.net以整站的方式打开?
- 100分求vss的下载地址。
- 请高手指教:<input id="Reply1" type="radio"……作选择题,答案全为最后全的哪个的答案?
- 如何触发datagrid中的dropdownlist模版列的selectindexchange事件?
- 在.NET中事件结束后能否弹出OK对话框
- 救命呀 IIS 映射配置问题.....
- 页面刷新
/// 将字符串分割成数组
/// </summary>
/// <param name="strSource"></param>
/// <param name="strSplit"></param>
/// <returns></returns>
public string[] StringSplit(string strSource,string strSplit)
{
string[] strtmp = new string[1];
int index = strSource.IndexOf(strSplit,0);
if(index<0)
{
strtmp[0] = strSource;
return strtmp;
}
else
{
strtmp[0] = strSource.Substring(0,index);
return StringSplit(strSource.Substring(index+strSplit.Length),strSplit,strtmp);
}
} /// <summary>
/// 采用递归将字符串分割成数组
/// </summary>
/// <param name="strSource"></param>
/// <param name="strSplit"></param>
/// <param name="attachArray"></param>
/// <returns></returns>
private string[] StringSplit(string strSource,string strSplit,string[] attachArray)
{
string[] strtmp = new string[attachArray.Length+1];
attachArray.CopyTo(strtmp,0); int index = strSource.IndexOf(strSplit,0);
if(index<0)
{
strtmp[attachArray.Length] = strSource;
return strtmp;
}
else
{
strtmp[attachArray.Length] = strSource.Substring(0,index);
return StringSplit(strSource.Substring(index+strSplit.Length),strSplit,strtmp);
}
}用这两个函数,调用第一个
string[] grp = str.Replace("aa", "_").Split('_');
string[] grp = str.Replace("aa", "_").Split('_');
比较简单,只是土了点,不过很实用,按具体的情况来应用。
我改进如下:
string str = "123123aa231241234aa34920349aa934203";
string[] grp = str.Replace("aa", "Ψ").Split('Ψ');这个“Ψ”符,可不是随便就能弄出来的。
string[] ss=r.Split("11aa2222");
{
string[] strapp=strTep.split(convert.tochar("a"));
strarray=new string[strtep.leng]
for(int i=0;i<strtep.length;i++)
{
if(str!="")
{
strarray[i]=strapp[i].tostring();
}
}
}
using System.Collections.Generic;
using System.Text.RegularExpressions;public class MyClass
{
public static void Main()
{
Regex r=new Regex("aa");
string[] ss=r.Split("123123aa231241234aa34920349aa934203");
for(int i=0;i<ss.Length;i++)
{
WL(ss[i]);
}
RL();
}
#region Helper methods private static void WL(object text, params object[] args)
{
Console.WriteLine(text.ToString(), args);
}
private static void RL()
{
Console.ReadLine();
}
private static void Break()
{
System.Diagnostics.Debugger.Break();
} #endregion
string[] ss=r.Split("123123aa231241234aa34920349aa934203");
输出结果:
123123
231241234
34920349
934203
123123
不知道有没有注意到多出一个123123.
哈哈,试了一下才知道。