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

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

时间:2023-04-24 22:33:26浏览次数:43  
标签: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、常用

 

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个重载函数:

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://www.cnblogs.com/automachinengineering/p/17351200.html

相关文章

  • tracecompass 基于trace+log 分析系统性能问题的gui 工具
    tracecompass是eclipse社区贡献的,支持对于trace以及log进行方便的分析,可以用来快速分析系统性能问题支持多种trace格式,包含了linux,标准jaeger,linpacp,lltng,gdbtrace是一个很不错的工具,同时官方也提供了比较完备的资料可以参考说明tracecompass是一个值得使用的工具,值得......
  • vue项目中引入echarts中国地图
     最近项目中根据项目需求,展示中国地图一、下载echarts插件(我这里使用的是 4.9.0 版本)[email protected]二、在需要使用的页面引入echarts(这里是单独封装了地图组件) components/map.vue<template><divclass="map-view"><divid="main"></d......
  • ChatGPT免费第一版本
        最近利用空余时间做了一个供大家免费体验的chatgpt国内可直接访问的版本    输入12335gpt.com可直接 贴上GPT给我回复的内容,......
  • C# WakeOnLan 唤醒局域网内电脑
    首先需要开启被唤醒电脑的WOL功能进入BIOS,寻找有关WOL相关项,我的电脑BIOS里面叫做networkstack打开网卡界面,选中网卡右键打开属性 然后点击配置 选择高级,启用唤醒幻数据包 选择电源管理,勾选以下2个选项 C#唤醒局域网内电脑代码namespaceWakeOnLan{in......
  • 电力系统潮流计算matlab仿真,计算结果自动保存到excel文件中
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       在电力工程中,“潮流”还特指电网各处电压(包括幅值与相角)、有功功率、无功功率等的分布。潮流的分布是运行调度单位和维修部门所必须知道的事项。       而潮流计算,是指给定电网中一......
  • Navicat连接Oracle报错:ORA-28547...
    使用Navicat连接正常的oracle数据库时,提示 可能是因为Navicat本地的OCI版本与Oracle数据库版本不符造成的,可以下载对应的OCI版本在Navicat中使用。1.下载OCI搜索oracleinstantclient找到相关下载地址OracleInstantClientDownloads根据实际oracle数据库版本选择对应in......
  • 【ⓈSpring & Spring MVC】Spring核心接口InitializingBean与SmartInitializingSingle
    SmartInitializingSingletonSmartInitializingSingleton中只有一个接口afterSingletonsInstantiated(),其作用是在spring容器管理的所有单例对象(非懒加载对象)初始化完成之后调用的回调接口。InitializingBeanInitializingBean接口为bean提供了初始化方法的方式,它只包括afterProp......
  • [Week 18] 每日一题(C++,动态规划,线段树,数学)
    目录[Daimayuan]T1最长公共子序列(C++,DP,二分)输入格式输出格式数据范围输入样例输出样例解题思路[Daimayuan]T2喵喵序列(C++,序偶)题目描述输入格式输出格式样例输入样例输出样例说明数据范围双倍经验解题思路:[Daimayuan]T3漂亮数(C++,字符串)输入描述输出描述输入样例输出样例解题......
  • Numerical Approximation Chapter 6 Notes
    Weierstrasstheoremapproximation之间也有高低,所以我们在compactsubset里面会有bestapproximation.但是以polynomialinterpolation为例,随着不断选更多的Chebyshevinterpolationpoints,对应的插值多项式次数越来越高的同时也会在插值点以外的地方越来越靠近函数本身。这种情......
  • C++变量的大小
    #include<iostream>usingnamespacestd;intmain(){ cout<<"==========BASICVARIABLESSIZELIST=========="<<endl; cout<<"short:"<<sizeof(short)<<"bytes"<<endl; ......