用split()截取字符串

用split()截取字符串

C#代码  
  1. string s = "123a223a456a63223sa";   
  2.                         string[] sArray = s.Split('a');                          
  3.                         MessageBox.Show(sArray[0]);   
  4.                         MessageBox.Show(sArray[1]);   
  5.                         MessageBox.Show(sArray[2]);   
  6.                         MessageBox.Show(sArray[3]);  
string s = "123a223a456a63223sa";
                        string[] sArray = s.Split('a');
                        int j = 0;
                        MessageBox.Show(sArray[0]);
                        MessageBox.Show(sArray[1]);
                        MessageBox.Show(sArray[2]);
                        MessageBox.Show(sArray[3]);

 这样结果也是

123

223

456

63223s

C#中使用split分割字符串的几种方法

第一种方法:

C#代码  
  1. string s=abcdeabcdeabcde;   
  2. string[] sArray=s.Split(c) ;   
  3. foreach(string i in sArray)   
  4. Console.WriteLine(i.ToString());  
string s=abcdeabcdeabcde;
string[] sArray=s.Split(c) ;
foreach(string i in sArray)
Console.WriteLine(i.ToString());

 
输出下面的结果:
ab
deab
deab
de

第二种方法:
我们看到了结果是以一个指定的字符进行的分割。使用另一种构造方法对多个字符进行分割:

C#代码  
  1. string s=abcdeabcdeabcde   
  2. string[] sArray1=s.Split(new char[3]{c,d,e}) ;   
  3. foreach(string i in sArray1)   
  4. Console.WriteLine(i.ToString());  
string s=abcdeabcdeabcde
string[] sArray1=s.Split(new char[3]{c,d,e}) ;
foreach(string i in sArray1)
Console.WriteLine(i.ToString());

 可以输出下面的结果:
ab
ab
ab

第三种方法:
除了以上的这两种方法以外,第三种方法是使用正则表达式。新建一个控制台项目。然后先添加 using

C#代码  
  1. System.Text.RegularExpressions;   
  2. string content=agcsmallmacsmallgggsmallytx;    
  3. string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase)    
  4. foreach(string i in resultString)   
  5. Console.WriteLine(i.ToString());
  6. //regexOptions.IgnoreCase是不区分small在字符串content中的大小写  

输出下面的结果:
agc
mac
ggg
ytx

第四种方法:

C#代码  
  1. string str1=我*****是*****一*****个*****教*****师;   
  2. string[] str2;   
  3. str1=str1.Replace(*****,*) ;   
  4. str2=str1.Split(*) ;   
  5. foreach(string i in str2)   
  6. Console.WriteLine(i.ToString());  
string str1=我*****是*****一*****个*****教*****师;
string[] str2;
str1=str1.Replace(*****,*) ;
str2=str1.Split(*) ;
foreach(string i in str2)
Console.WriteLine(i.ToString());

 第五种方法:
string str1=我**是*****一*****个*****教*****师;
我希望显示的结果为:我是一个教师。
我如果采用上面的第四种方法来做就会产生下面的错误:我   是一个教师。中间有空格输出,所以输出结果并不是希望的结果,这就又回到了正则表达式了,这时可以采用下面的第五种方法:

C#代码  
  1. string str1=我**是*****一*****个*****教*****师;   
  2. string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+);    
  3. foreach(string i in str2)   
  4. Console.WriteLine(i.ToString());   
string str1=我**是*****一*****个*****教*****师;
string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+); 
foreach(string i in str2)
Console.WriteLine(i.ToString()); 

 这里通过[*]+ 巧妙的完成了我们的目标。

例如我想取得一个ftp里的用户名及密码(服务器等)值(用IE当FTP时或从表中取出FTP的值)。
下面是我的解决思路:
设url为收到的URL值,这里指:url=ftp://username:password@server,请注意这句话的规律
我想大家都看清楚这个URL里的规律了吧,就是各个部分都被":"给区分成三个部分,即:ftp、//username、password@server
首先将这个URL的各个部分区分开来,用split(url, ":")
以下是具体的代码:

parts = split(url, ":")   '此时parts就有三部分,parts(0)=ftp,parts(1)=//username,parts(2)=password@server'接下来剔除没有用到的信息'由于只取username,所以其中parts(0)跟parts(2)是无用的,直接不引用!newname=replace(parts(1), "//", "")   '去除//符号,因为这不是username里的内容'此时的newname既为用户名。


以上是只取用户名的代码,如果你要再取密码的话,可以参考下面。

'由于用户名是属于parts(2)里的,而且包含服务器的信息,如果不取服务器,则:newpass = left(parts(2), instr(parts(2),"@")-1)  '取值到@之前的位数。此时的newpass取为密码


以上代码为不取服务器地址的代码,如果有取服务器的话,其实也是很简单的

newparts=split(parts(2),"@")  '此时newparts分成两部分:newparts(0)为密码,即password;newparts(1)则为服务器地址,即server'如果要输出密码的的话,直接response.write newparts(0)就可以了,服务器就newparts(1)


后话,对于要取一字符串中的某些字符或部分,只要抓住规律,再加上用split就可以很好做成各种效果。

 

你可能感兴趣的:(用split()截取字符串)