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#窗体程序只能启动一次

    有时候我们需要我们的软件只可以启动一次,用下面的代码就可以实现啊。
    2009-04-04
  • 详解C#如何手动改变自制窗体的大小

    详解C#如何手动改变自制窗体的大小

    这篇文章主要为大家详细介绍了在C#中如何实现手动改变自制窗体的大小,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • C#使用doggleReport生成pdf报表的方法

    C#使用doggleReport生成pdf报表的方法

    这篇文章主要介绍了C#使用doggleReport生成pdf报表的方法,结合实例形式分析了C# doggleReport安装及使用具体操作技巧,需要的朋友可以参考下
    2017-06-06
  • C#实现归并排序

    C#实现归并排序

    这篇文章介绍了C#实现归并排序的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#中PuppeteerSharp库的应用详解

    C#中PuppeteerSharp库的应用详解

    PuppeteerSharp是一个针对Google Chrome浏览器的高级API库,这篇文章主要为大家详细介绍了PuppeteerSharp库在C#中的具体应用,需要的小伙伴可以了解下
    2024-01-01
  • Entity Framework主从表的增删改

    Entity Framework主从表的增删改

    这篇文章介绍了Entity Framework主从表的增删改,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • WPF+ASP.NET SignalR实现后台通知功能的示例代码

    WPF+ASP.NET SignalR实现后台通知功能的示例代码

    本文以一个简单示例,简述如何通过WPF+ASP.NET SignalR实现消息后台通知以及数据的实时刷新,仅供学习分享使用,如有不足之处,还请指正
    2022-09-09
  • C# 动态加载程序集信息

    C# 动态加载程序集信息

    在设计模式的策略模式中,需要动态加载程序集信息,本文通过一个简单的实例,来讲解动态加载Dll需要的知识点。下面跟着小编一起来看下吧
    2017-03-03
  • C#泛型的使用及示例详解

    C#泛型的使用及示例详解

    这篇文章主要介绍了C#泛型的使用及示例,本文通过例子个大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 基于Json序列化和反序列化通用的封装完整代码

    基于Json序列化和反序列化通用的封装完整代码

    JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。下面通过实例代码给大家分享Json序列化和反序列化通用的封装,需要的的朋友参考下吧
    2017-07-07

最新评论