C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#分割字符串

C#中如何分割字符串

作者:sxmsxmsmxm

这篇文章主要介绍了C#中如何分割字符串问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C#如何分割字符串

在 C# 中,可以使用 string.Split() 方法对字符串进行分割。

该方法的使用形式为:

string[] result = originalString.Split(separatorChars, StringSplitOptions);

其中,separatorChars 参数是一个字符数组,用于指定分隔符;StringSplitOptions 参数则是一个枚举值,用于指定是否删除结果数组中的空白项。

例如,以下代码将一个字符串按照空格分隔,并输出结果数组中的第二个元素:

string originalString = "Hello world"; 
string[] result = originalString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 Console.WriteLine(result[1]); 
// 输出 "world"

需要注意的是,Split() 方法返回的是一个字符串数组,可以通过索引来访问其中的元素。

在上述示例中,由于将原始字符串按照空格分隔后,结果数组中只有两个元素,因此可以通过 result[1] 来访问第二个元素。

当然,Split() 方法还支持多个分隔符的情况,可以将多个分隔符放在一个字符数组中即可。

例如,以下代码将一个字符串按照逗号和空格两种分隔符进行分隔:

string originalString = "apple, banana, orange"; 
string[] result = originalString.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); 
foreach (string s in result)
 {
     Console.WriteLine(s);
 } 
// 输出: // apple // banana // orange

在上述示例中,将逗号和空格两种分隔符放在一个字符数组中,然后用 Split() 方法对原始字符串进行分隔,得到一个包含三个元素的字符串数组。

最后通过 foreach 循环遍历结果数组,逐个输出其中的元素。

C#几种字符串截取方式

C#截图字符串常用的方法有 split 、Substring、Replace、remove等。

其中最好用的个人认为是split方法

下面来介绍以上几种方法

1. split

返回的字符串数组包含此实例中的子字符串(由指定 Unicode 字符数组的元素分隔)。

根据单个分隔字符用split截取。 

例如 复制代码代码如下:

  string st="GT123_1"; 

    string[] sArray=st.Split(‘_');// 一定是单引 

    即可得到sArray[0]="GT123",sArray[1]="1"; 

-利用多个字符来分隔字符串

例如 复制代码代码如下: 

 string str = "GTAZB_JiangjBen_123"; 

    string[] sArray = str.Split(new char[2] { 'j', '_' }); 

    foreach(string e in sArray) 

    { Console.WriteLine(e); } 

    得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123"; 

-Split( String (), StringSplitOptions)

返回的字符串数组包含此字符串中的子字符串(由指定字符串数组的元素分隔)。

参数指定是否返回空数组元素。

RemoveEmptyEntries表示要省略返回的数组中的空数组元素

根据字符串或字符串组来截取字符串

例如 复制代码代码如下:

 string str = "GTAZB_JiangjBen_123"; 

   string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries); 

   foreach(string e in sArray) 

  { Console.WriteLine(e); } 

   得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123"; 

2. Substring的使用

- Substring(Int32, Int32)

从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。

提取字符串中的第i个字符开始的长度为j的字符串;

例如 复制代码代码如下:

string str = "GTAZB_JiangjBen_123"; 

   int start=3,length=8; 

   Console.WriteLine(str.Substring(start-1, length)); 

   输出得到AZB_Jian。 

- Substring(Int32)

从此实例检索子字符串。子字符串从指定的字符位置开始。

提取字符串中右数长度为i的字符串

复制代码代码如下:

 string str = "GTAZB_JiangjBen_123"; 

   string tSt; int i=5; 

   tSt = str.Substring(str.Length - i); 

   Console.WriteLine(tSt); 

   输出n_123; 

3. Replace的使用

- Replace(String, String)

返回一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定的字符串。

替换字符串中的特定字符串

复制代码代码如下:

  string str = "GTAZB_JiangjBen_123"; 

   string tSt; 

   tSt = str.Replace("123","321"); 

   Console.WriteLine(tSt); 

   输出GTAZB_JiangjBen_321 

删除字符串中的特定字符串Jiangj

string str = "GTAZB_JiangjBen_123"; 

   string tSt; tSt = str.Replace("Jiangj",""); 

   Console.WriteLine(tSt); 

   输出GTAZB_Ben_123 

Replace(Char, Char)

返回一个新字符串,其中此实例中出现的所有指定 Unicode 字符都替换为另一个指定的 Unicode 字符。

下面的示例将一系列数字之间的空白替换为逗号,从而创建以逗号分隔的值列表。

public static void Main() 

{ 

   string str = "1 2 3 4 5 6 7 8 9"; 

   Console.WriteLine("Original string: \"{0}\"", str); 

   Console.WriteLine("CSV string: \"{0}\"", str.Replace(' ', ',')); 

}

输出:Original string: "1 2 3 4 5 6 7 8 9" 

      CSV string: "1,2,3,4,5,6,7,8,9" 

4. remove的使用

- Remove(Int32, Int32)

从此实例中的指定位置开始删除指定数目的字符。

删除指定位置(第i个)的指定长度(length)的字符串

复制代码代码如下:

string str = "GTAZB_JiangjBen_123"; 

   int i=5,length=8; 

   str=str.remove(i, length); 

   console.writeline(str); 

   输出GTAZBen_123。 

- Remove(Int32)

删除此字符串中从指定位置到最后位置的所有字符。

 string s = "abc---def"; 

   Console.WriteLine("{0}", s.Remove(3)); 

   输出:abc

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文