首页 > 编程语言 >[C#]中String、String[]、List<string>相互转换及string成员substring、split简单使用

[C#]中String、String[]、List<string>相互转换及string成员substring、split简单使用

时间:2023-04-29 20:32:29浏览次数:27  
标签:String C# Split str new StringSplitOptions string

一、相互转换

1. String > String[]

String s = "a,b,c,d,e";
String[] sArray = s.Split(',');

2. String[] > String

string[] sArray = {"a", "b", "c", "d","e"};
string s = String.Join(",", sArray);

3.String[] > List<String>

string[] sArray = {"a", "b", "c", "d","e"};
List<String> list = new List<string>(sArray);

4.List<String> > String[]

List<String> list = new List<string>();
list.Add("a");            
list.Add("b");            
list.Add("c");            
list.Add("d");    
list.Add("e");     
string[] sArray = list.ToArray();

备注:String和List<String>之间的转换可以使用String[]来中转完成

二、String常用操作成员

1、常用

[C#]中String、String[]、List<string>相互转换及string成员substring、split简单使用_正则匹配

 

2、Substring介绍

 Substring(param1,param2)

param1参数是起始位置,这是原字符串的初始位置:注意:是从该位置开始取,但是不包括这个点,
param2参数是结束位置,可以省略,省略的话就是从开始位置一直取到最后,如果不省略,就是取得指定的长度;

Eg:

string a = “abcde.12345”:   a.Substring(3,2)   结果为:de
string a = “abcde.12345”:   a.Substring(3,2)   结果为:de.12345
string a = “abcde.12345”:   a.Substring(a.LastIndexOf('.')+1)   结果为:12345

3、Split分隔符介绍

1、用字符串分隔:

using System.Text.RegularExpressions;
string str="aaajsbbbjsccc";
string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
foreach (string i in sArray) Response.Write(i.ToString() + "<br>");
输出结果:
aaa
bbb
ccc


2、用多个字符来分隔:

string str="aaajbbbscccjdddseee"; 
string[] sArray=str.Split(new char[2] {'j','s'}); 
foreach(string i in sArray) Response.Write(i.ToString() + "<br>"); 
输出结果:
aaa
bbb
ccc
ddd
eee


3、用单个字符来分隔:

string str="aaajbbbjccc";
string[] sArray=str.Split('j');
foreach(string i in sArray) Response.Write(i.ToString() + "<br>");
输出结果:
aaa
bbb
ccc

String.Split 方法有6个重载函数:

程序代码

1) public string[] Split(params char[] 
separator)
2) public string[] Split(char[] separator, int 
count)
3) 
public string[] Split(char[] separator, StringSplitOptions options)
4) 
public string[] Split(string[] separator, StringSplitOptions options)
5) 
public string[] Split(char[] separator, int count, StringSplitOptions 
options)
6) 
public string[] Split(string[] separator, int count, StringSplitOptions 
options)

下边我们通过一些实例来说明下怎么使用(以下string words = "1,2.3,,4";):
1. public string[] Split(params char[] separator)

程序代码

string[] split = words.Split(new Char[] { ',' 
});//返回:{"1","2.3","","4"}
string[] 
split = words.Split(new Char[] { ',', '.' });//返回:{"1","2","3","","4"}


2. public string[] Split(char[] separator, int count)

程序代码

string[] split = words.Split(new Char[] { ',', '.' }, 
2);//返回:{"1","2.3,,4"}
string[] 
split = words.Split(new Char[] { ',', '.' }, 6);//返回:{"1","2","3","","4"}


3. public string[] Split(char[] separator, StringSplitOptions options)

程序代码

string[] split = words.Split(new Char[] { ',', '.' }, 
StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2","3","4"} 不保留空元素
string[] 
split = words.Split(new Char[] { ',', '.' }, 
StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素


4. public string[] Split(string[] separator, StringSplitOptions options)

程序代码

string[] split = words.Split(new string[] { ",", "." 
}, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2","3","4"} 不保留空元素
string[] 
split = words.Split(new string[] { ",", "." }, 
StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素


5. public string[] Split(char[] separator, int count, StringSplitOptions options)

程序代码

string[] split = words.Split(new Char[] { ',', '.' }, 
2, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2.3,,4"} 不保留空元素
string[] 
split = words.Split(new Char[] { ',', '.' }, 6, 
StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素


6. public string[] Split(string[] separator, int count, StringSplitOptions options)

程序代码

string[] split = words.Split(new string[] { ",", "." 
}, 2, StringSplitOptions.RemoveEmptyEntries);//返回:{"1","2.3,,4"} 不保留空元素
string[] 
split = words.Split(new string[] { ",", "." }, 6, 
StringSplitOptions.None);//返回:{"1","2","3","","4"} 保留空元素

需要注意的是没有重载函数public string[] Split(string[] separator),所以我们不能像VB.NET那样使用words.Split(","),而只能使用words.Split(',')

正则匹配拆分字符串提供了5个重载函数:

[C#]中String、String[]、List<string>相互转换及string成员substring、split简单使用_正则匹配_02

using System.Text.RegularExpressions;

1.Regex.Split(String,String)

string str = "aaatsbbtscctsdd";
stirng 
[]strArray = Regex.Split(str,"ts");  //正则匹配切割(result: "aaa" "bb" "cc" 
"dd");

2.Regex.Split(String,String)

string str = "aaatsbbtscctsdd";
stirng 
[]strArray = Regex.Split(str,"ts",RegexOptions.IgnoreCase);  //正则匹配切割(result: "aaa" "bb" "cc" "dd");

三、应用

1.单字符拆分

string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t'}); 
或string []strArray = str.Split('t'); //单字符切割(result : "aaa"  "bbscc"  "dd")

2.多字符拆分

string str = "aaatbbscctdd";
string []strArray = str.Split(new char[]{'t','s'}); 
//多字节切割(result : "aaa" "bb" "cc" "dd")

3.字符串拆分

using System.Text.RegularExpressions;
string str = "aaatsbbtscctsdd";
stirng []strArray = 
Regex.Split(str,"ts",RegexOptions.IgnoreCase);  //正则匹配切割且(result: "aaa" 
"bb" "cc" "dd");

或者

string str = "aaatsbbtscctsdd";
string []strArray = str.Split(new 
string[]{"ts"});  //字符串切割(result : "aaa" "bb" "cc" "dd")

注意:

1.String.Split方法没有重载String.Split(stirng [])方法,也就是说str.Split("t")或者str.Split(new string[]{"ts","dd"})都是错误的。

2.除了切割单字符可用String.Split('t')外,其它的都必须用String.Split(new char[]{})这样的格式,否则编译会出错。





标签:String,C#,Split,str,new,StringSplitOptions,string
From: https://blog.51cto.com/u_15269117/6236883

相关文章

  • 使用docker快速安装minio
    1.拉取minio镜像dockerpullminio/minio2.docker容器构建和运行miniodockerrun-d--nameminio\--restart=always\-p9000:9000\-p9001:9001\-e"MINIO_ROOT_USER=minioroot"\-e"MINIO_ROOT_PASSWORD=minioroot"\-v/home/mi......
  • postgres-earthdistance模块使用
    一、快速安装pg+postgis使用docker安装dockerpullmdillon/postgis:latestdockerrun--namepostgresql-d-p5432:5432-v/home/pgdata:/var/lib/postgresql/data-ePOSTGRES_PASSWORD=123456-eALLOW_IP_RANGE=0.0.0.0/0mdillon/postgis:latest##如果碰到ipv4未开......
  • centos7虚拟机配置静态ip
    1.打开虚拟网络编辑器2.配置/etc/sysconfig/network-scripts/ifcfg-ens33vim/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO="static"#静态DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yes......
  • cpp future,get,sleep_for,third variable
    #include<chrono>#include<condition_variable>#include<ctime>#include<fstream>#include<future>#include<iomanip>#include<iostream>#include<map>#include<mutex>#include<random>#inc......
  • 异步爬虫例子之asyncio
    异步爬虫例子:importtimeimportaiohttpimportasyncioimportreimportosos.environ['NO_PROXY']='www.baidu.com'classAsyn():def__init__(self):self.__headers={'authority':......
  • C++中的STL容器和算法
    C++STL(标准模板库)提供了一组丰富的容器和算法,使得开发者能够更加高效地编写程序。本文将介绍STL中的一些常用容器和算法。容器vectorvector是一个动态数组,可以在运行时调整大小。它的优点在于可以快速地访问元素,缺点是在插入和删除元素时需要移动后面的元素。#include<vec......
  • websocket如何建立
    websocket是什么WebSocket是一种计算机通信协议,它提供了在单个TCP连接上进行全双工通信的能力。它允许客户端和服务器之间进行实时数据交换,可以用于实现在线游戏、聊天室、股票市场等需要实时通信的应用程序。WebSocket协议是HTML5规范的一部分,支持大部分现代浏览器。如何建立......
  • springmvc 拦截器
    自定义一个拦截器LoginInterceptor这个拦截器的作用就是用户首次要去访问网站,直接点击首页会被拦截并跳转到登录页面,登录成功后(session有记录)方可直接来到首页不被拦截测试1:题目:用户在首次访问前提下,需设置拦截器,使得用户只要登录了才能到达用户主页思路:首先要优化一下首页inde......
  • 《asyncio 系列》3. 详解 Socket(阻塞、非阻塞),以及和 asyncio 的搭配
    楔子在前面两篇文章中,我们介绍了协程、任务和事件循环,研究了如何同时运行长耗时的操作,并探索了一些可以优化此操作的asyncioAPI。然而,到目前为止,我们只是用asyncio.sleep函数模拟了长时间的操作。由于我们想要构建的不仅是演示应用程序,因此我们将使用一些真实世界的阻塞操作......
  • 问题解决:Component name "xxx" should always be multi-word vue/multi-word-compone
    如题,原因是单个单词命名时语法检测无法通过,可以在导出组件时通过name属性给组件名加一个后缀,比如Component。<script>exportdefault{//当组件名为一个单词时,语法检查是无法通过的,可以设置name的值为2个单词来规避检查。name:'HomeComponent'}<......