C#拆分字符串,正则表达式Regex.Split 方法 vs String.Split 方法

目录

一、使用的方法

1.使用Split(String, String)方法

2.String.Split 方法

二、源代码

1.源码

2.生成效果


        使用正则表达式可以拆分指定的字符串。同样地,使用字符串对象的Split方法也可以实现此功能。使用字符串对象的Split方法可以根据用户选择的拆分条件,方便地将字符串对象拆分为多个字符串。

一、使用的方法

1.使用Split(String, String)方法

        在由正则表达式模式定义的位置将输入字符串拆分为一个子字符串数组。

public static string[] Split (string input, string pattern);
参数
input    String
要拆分的字符串。pattern    String
要匹配的正则表达式模式。返回
String[]
字符串数组。例外
ArgumentException
出现正则表达式分析错误。ArgumentNullException
input 或 pattern 为 null。RegexMatchTimeoutException
发生超时。 有关超时的详细信息,请参阅“备注”部分。
// 用正则表达式拆分字符串为一个子字符串数组
using System.Text.RegularExpressions;namespace _086_2
{public class Example{public static void Main(){string input = @"01-31-2024";string pattern = @"(-)|(/)";foreach (string result in Regex.Split(input, pattern)){Console.WriteLine("{0}", result);}}}
}
// 运行结果:
/*
01
-
31
-
2024*/

2.使用String.Split 方法

        String对象的Split(Char[])方法,根据指定的分隔字符将字符串拆分为子字符串。

public string[] Split (params char[]? separator);参数
separator    Char[]
分隔字符的数组、不包含分隔符的空数组或 null。返回
String[]
一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。 有关详细信息,请参阅“备注”部分。
// 将空格字符和制表 \t 符作为分隔符
namespace _086_1
{internal class Program{private static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);string s = "Today\tI'm going to school";string[] subs = s.Split(' ', '\t');foreach (var sub in subs){Console.WriteLine($"Substring: {sub}");//Console.WriteLine("Substring: {0}", sub);//等效语句}}}
}
// 运行结果:
/*
Substring: Today
Substring: I'm
Substring: going
Substring: to
Substring: school*/

         下面来分享源代码吧:

二、源代码

1.源码

// 使用Split(String, String)方法拆分字符串
// 使用String对象的Split(Char[])方法拆字符串。
using System.Text.RegularExpressions;
namespace _086
{public partial class Form1 : Form{private GroupBox? groupBox1;private Button? button2;private Button? button1;private TextBox? textBox2;private TextBox? textBox1;private Label? label2;private Label? label1;public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // label1// label1 = new Label{AutoSize = true,Location = new Point(6, 23),Name = "label1",Size = new Size(68, 17),TabIndex = 0,Text = "源字符串:"};// // label2// label2 = new Label{AutoSize = true,Location = new Point(6, 48),Name = "label2",Size = new Size(68, 17),TabIndex = 1,Text = "子字符串:"};// // textBox1// textBox1 = new TextBox{Location = new Point(72, 17),Name = "textBox1",Size = new Size(262, 23),TabIndex = 2};// // textBox2// textBox2 = new TextBox{Font = new Font("Microsoft YaHei UI", 7F),Location = new Point(72, 48),Multiline = true,Name = "textBox2",Size = new Size(181, 153),TabIndex = 3};// // button1// button1 = new Button{Location = new Point(259, 48),Name = "button1",Size = new Size(75, 23),TabIndex = 4,Text = "拆分1",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // button2// button2 = new Button{Location = new Point(259, 74),Name = "button2",Size = new Size(75, 23),TabIndex = 5,Text = "拆分2",UseVisualStyleBackColor = true};button2.Click += Button2_Click;// // groupBox1// groupBox1 = new GroupBox{Location = new Point(12, 12),Name = "groupBox1",Size = new Size(340, 207),TabIndex = 0,TabStop = false,Text = "拆分字符串"};groupBox1.Controls.Add(button2);groupBox1.Controls.Add(button1);groupBox1.Controls.Add(textBox2);groupBox1.Controls.Add(textBox1);groupBox1.Controls.Add(label2);groupBox1.Controls.Add(label1);groupBox1.SuspendLayout();// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(364, 231);Controls.Add(groupBox1);Name = "Form1";StartPosition = FormStartPosition.CenterScreen;Text = "使用正则表达式拆分字符串";groupBox1.ResumeLayout(false);groupBox1.PerformLayout();}/// <summary>/// 拆分1:使用正则表达式根据数字进行拆分/// 遍历拆分后的字符串集合/// </summary>private void Button1_Click(object? sender, EventArgs e){if (textBox1!.Text != ""){textBox2!.Text = "";string[] str = MyRegex().Split(textBox1!.Text);foreach (string s in str){textBox2!.Text += s + Environment.NewLine;}}else{MessageBox.Show("源字符串不能为空", "拆分1");}}/// <summary>/// 拆分2/// </summary>private void Button2_Click(object? sender, EventArgs e){if(textBox1!.Text != ""){textBox2!.Text = "";string s = textBox1!.Text;char[] separators = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];string[] subs = s.Split(separators/*, StringSplitOptions.RemoveEmptyEntries*/);//注释后与正则方法输出相同结果foreach (var sub in subs){textBox2!.Text += sub + Environment.NewLine;}}else{MessageBox.Show("源字符串不能为空", "拆分2");}}[GeneratedRegex("[1-9]")]private static partial Regex MyRegex();}
}

2.生成效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsp自助点餐管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 自助点餐管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0…

2024年【A特种设备相关管理(电梯)】考试总结及A特种设备相关管理(电梯)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;电梯&#xff09;考试总结是安全生产模拟考试一点通生成的&#xff0c;A特种设备相关管理&#xff08;电梯&#xff09;证模拟考试题库是根据A特种设备相关管理&#xff08;电梯&#x…

【Web】CORS概念性描述

简言 描述CORS。 CORS CORS&#xff08;Cross-Origin Resource Sharing&#xff0c;跨源资源共享&#xff09; 是一个系统&#xff0c;它由一系列传输的 HTTP 标头组成&#xff0c;这些 HTTP 标头决定浏览器是否阻止前端 JavaScript 代码获取跨源请求的响应。 同源安全策略默…

Android Studio非UI线程修改控件——定时器软件

目录 一、UI界面设计 1、UI样式 2、XML代码 二、功能编写 1、定义 2、实现方法 3、功能实现 一、UI界面设计 1、UI样式 2、XML代码 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android…

LabVIEW叶片厚度远程监控

LabVIEW叶片厚度远程监控 随着网络技术的高速发展&#xff0c;远程监控广泛应用在各个领域。本文介绍了一种基于LabVIEW的植物叶片厚度远程监控系统&#xff0c;旨在实现对植物生长状况的精准监测和分析。 该系统利用LabVIEW软件开发工具&#xff0c;通过TCP网络协议实现数据…

Scrum敏捷开发企业培训-敏捷研发管理

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架。 这是一个两天的实训课程&#xff0c;面向研发管理者、项目经理、产品经理、研发团队等&#xff0c;旨在帮助学员全面系统地学习Scrum和敏捷开发, 帮助企业快速启动敏…

11:按键

按键 1、按键的相关知识2、独立按键3、CPU如何处理按健4、编程测试&#xff08;用LED1作为指示&#xff09;5 、编程测试&#xff08;用8个LED作为指示&#xff09; 1、按键的相关知识 分为独立按键和矩阵按键 2、独立按键 由图得独立按键右边接地&#xff0c;左边独立连接到…

断电保持霍尔传感器

断电保持霍尔传感器的工作原理 断电保持霍尔传感器是一种利用变压器或共振电路的检测元件&#xff0c;通过检测物体与探头之间的物理距离控制电路的开关状态&#xff0c;从而实现对物体位置和状态的监测。该开关可以通过调试和校准以满足不同场合的要求。 断电保持霍尔传感器控…

jsp游戏网上商城系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 游戏网上商城系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

算法练习02——双指针

目录 283. 移动零11. 盛最多水的容器15. 三数之和42. 接雨水*(暴力&#xff0c;双指针优化暴力&#xff0c;单调栈)27. 移除元素344. 反转字符串54. 替换数字&#xff08;第八期模拟笔试&#xff09;151. 反转字符串中的单词206. 反转链表19. 删除链表的倒数第 N 个结点.面试题…

Electron开发的十大神级产品,vscode、atom、skype、figma等

Hi、我是贝格前端工场&#xff0c;今天分享一下基于Electron的十大著名产品&#xff0c;欢迎友友们补充。 Visual Studio Code 这是一款由微软开发的轻量级代码编辑器&#xff0c;它提供了丰富的功能和插件生态系统&#xff0c;支持多种编程语言和开发工具。Visual Studio Cod…

SpringBoot整理-安全(Spring Security)

在 Spring Boot 应用中实现安全性通常涉及到集成 Spring Security 框架。Spring Security 是一个功能强大且高度可定制的认证和访问控制框架,非常适合用于保护 Spring Boot 应用。 核心特性 认证: 认证是确认某个实体的身份,Spring Security 支持多种认证机制,如表单登录、L…

C++ | 部分和函数partial_sum的使用技巧

如果你需要处理一个数组的前缀和&#xff0c;或者数组中某一段元素的前缀和&#xff0c;你会怎么做呢&#xff1f; partial_sum函数是STL中的函数&#xff0c;用于计算范围的部分和&#xff0c;并从结果开始分配范围中的每个元素&#xff0c;range[first,last)中相应元素的部分…

爬虫工作量由小到大的思维转变---<第四十章 Scrapy Redis 的Queue问题>

前言: 对于scrapy-redis有一个特殊的地方,就是队列的进出关系,因为我们的url请求会从各个任务统一归纳到redis里面,因此,如何解决下载请求这个问题,也是scrapy-redis的一个关键点!!! 正文: 先讲解代码,讲它自带的3个队列方式; 然后,再讲讲如何自定义队列... 原文翻译: 1.Bas…

<网络安全>《14 日志审计系统》

1 概念 日志审计系统是用于全面收集企业IT系统中常见的安全设备、网络设备、数据库、服务器、应用系统、主机等设备所产生的日志&#xff08;包括运行、告警、操作、消息、状态等&#xff09;并进行存储、监控、审计、分析、报警、响应和报告的系统。 日志审计系统是一种用于…

投资更好的管理会计系统,探索全面预算管理的奥秘

目前&#xff0c;我国财政体制正值如火如荼的调整阶段&#xff0c;各级政府和部门响应国家号召&#xff0c;旨在加强管理会计系统建设&#xff0c;制定具有先导性和科学性的现代化全面预算管理制度&#xff0c;从而将我国财力推向一个新高度。其中&#xff0c;基于服务或产品的…

工程师 - headless模式

headless 英文释义&#xff1a; 在没有用户界面的情况下运行&#xff1b;具体地说&#xff0c;在没有显示器、键盘和鼠标的情况下运行。 Running without a user interface; specifically, running without a monitor, keyboard, and mouse. 说明 所谓的“无头系统”&#x…

【PostgreSQL灵活使用psql执行SQL的一些方式】

一、psql执行SQL并使用选项灵活输出结果 可以不进入数据库&#xff0c;在命令行&#xff0c;使用psql 的-c选项跟上需要执行的SQL。来获取SQL的执行结果 postgresubuntu-linux-22-04-desktop:~$ psql -c "select 1,2" ?column? | ?column? -------------------…

Swift Vapor 教程(CURD 操作)

接上篇使用 Swift Vapor 对数据库进行简单的操作。 下面会使用一个稍微简单的方式进行 CURD 操作 import Fluent import Vaporstruct SongController: RouteCollection {func boot(routes: Vapor.RoutesBuilder) throws {let songs routes.grouped("songs")// GET…

tengine ngx_http_upstream_dynamic_module 动态域名解析功能的代码详细解析

tengine ngx_http_upstream_dynamic_module 动态域名解析功能的代码详细解析 1. 为什么需要域名动态解析2. 配置指令3. 加载模块3. 源码分析3.1 指令解析3.2 upstream负载均衡算法的初始化3.3 upstream负载均衡上下文的初始化3.4 获取upstream的服务器地址3.5 域名解析回调处理…