C#中如何分割字符串

 更新时间:2024年02月22日 15:51:55   作者: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

总结

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

相关文章

  • C# 设计模式系列教程-单例模式

    C# 设计模式系列教程-单例模式

    单例模式防止在应用程序中实例化多个对象。这就节约了开销,每个实例都要占用一定的内存,创建对象时需要时间和空间。
    2016-06-06
  • c#实现适配器模式的项目实践

    c#实现适配器模式的项目实践

    适配器模式将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,本文主要介绍了c#实现适配器模式的项目实践,感兴趣的可以一起来了解一下
    2023-08-08
  • C#实现读取txt通用的方法小结

    C#实现读取txt通用的方法小结

    这篇文章主要为大家详细介绍了C#读取txt通用的方法,兼容所有的UTF-8、Unicode(Little Endian)、BigEndianUnicode,有需要的小伙伴可以了解下
    2024-01-01
  • 轻松学习C#的抽象类

    轻松学习C#的抽象类

    轻松学习C#的抽象类,对C#的抽象类感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的抽象类
    2015-11-11
  • C# Winform实现表格复制粘贴效果

    C# Winform实现表格复制粘贴效果

    这篇文章主要为大家学习介绍了如何通过C# Winform实现表格复制粘贴效果,文中的示例代码讲解详细,具有一定的参考价值,需要的可以了解一下
    2023-07-07
  • 详解如何选择使用ArrayList、HashTable、List、Dictionary数组

    详解如何选择使用ArrayList、HashTable、List、Dictionary数组

    本文详细介绍了ArrayList、HashTable、List、Dictionary的用法,以及什么情况选用该数组,以便提高开发效率。希望对大家有所帮助
    2016-11-11
  • 3种C# 加载Word的方法

    3种C# 加载Word的方法

    本次经验内容分享通过C#程序来加载Word文档的3种不同方法。分别是:加载本地Word文档、以只读模式加载Word文档、从流加载Word 想具体了解的小伙伴请参考下文
    2021-09-09
  • Unity3D Shader实现流光效果

    Unity3D Shader实现流光效果

    这篇文章主要为大家详细介绍了Unity3D Shader实现流光效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#匿名函数和匿名方法的使用

    C#匿名函数和匿名方法的使用

    本文主要介绍了C#匿名函数和匿名方法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 算法证明每一位都相同十进制数不是完全平方数

    算法证明每一位都相同十进制数不是完全平方数

    这篇文章主要为大家介绍了算法证明每一位都相同十进制数不是完全平方数的过程论述,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论