C#验证字符串是否纯字母:用正则表达式 vs 用Char.IsLetter方法加遍历

目录

一、使用的方法

1.使用正则表达式

2.使用Char.IsLetter方法

二、实例 

1. 源码

2.生成效果 


一、使用的方法

1.使用正则表达式

        使用正则表达式可以验证用户输入的字符串是否为字母。匹配的正则表达式可以是:^[A-Za-z]+$、^[A-Za-z]{1,}$、^[A-Za-z]*$。

2.使用Char.IsLetter方法

        同样地,使用Char结构的IsLetter方法也可以实现此验证功能。使用Char结构的IsLetter方法可以依次判断用户输入字符串中的每一个字符是否为字母,如果为字母则返回true,否则返回false。

         好啦,现在来分享源码吧:

二、实例 

        本实例作者用两种方法实现设计目的:

        验证1:用正则表达式;

        验证2:用Char.IsLetter方法;留下一个思考题给读者,假如判断用的是if(IsLetter()){}结果会如何?读者不妨试一下,体验一下两者的不同,体验对了不用告诉我,体验不到差别,那就留言给我。

1. 源码

//用正则表达式判断字符串是否字母
//用Char.IsLetter方法判断字符串是否字母
namespace _087
{public partial class Form1 : Form{private GroupBox? groupBox1;private Button? button2;private Button? button1;private TextBox? textBox1;private Label? label1;public Form1(){InitializeComponent();StartPosition = FormStartPosition.CenterScreen;Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // label1// label1 = new Label{AutoSize = true,Location = new Point(20, 34),Name = "label1",Size = new Size(80, 17),TabIndex = 0,Text = "输入字符串:"};// // textBox1// textBox1 = new TextBox{Location = new Point(106, 31),Name = "textBox1",Size = new Size(156, 23),TabIndex = 1};// // button1// button1 = new Button{Location = new Point(106, 57),Name = "button1",Size = new Size(75, 23),TabIndex = 2,Text = "验证1",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // button2// button2 = new Button{Location = new Point(187, 57),Name = "button2",Size = new Size(75, 23),TabIndex = 3,Text = "验证2",UseVisualStyleBackColor = true};button2.Click += Button2_Click;// // groupBox1// groupBox1 = new GroupBox{Location = new Point(12, 11),Name = "groupBox1",Size = new Size(280, 100),TabIndex = 0,TabStop = false,Text = "验证是否字母"};groupBox1.Controls.Add(button2);groupBox1.Controls.Add(button1);groupBox1.Controls.Add(textBox1);groupBox1.Controls.Add(label1);groupBox1.SuspendLayout();// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(304, 123);Controls.Add(groupBox1);Name = "Form1";Text = "验证字符串是否字母";groupBox1.ResumeLayout(false);groupBox1.PerformLayout();}/// <summary>/// 用正则表达式验证/// </summary>private void Button1_Click(object? sender, EventArgs e){if(textBox1!.Text != ""){if (!IsLetter(textBox1!.Text.Trim())){MessageBox.Show("输入的不是纯字母", "验证1");}else{MessageBox.Show("输入的是纯字母", "验证1");}}else{MessageBox.Show("字符串不能为空", "验证1");}}/// <summary>/// 用Char.IsLetter方法判断字符串是否字母/// </summary>private void Button2_Click(object? sender, EventArgs e){if(textBox1!.Text != ""){foreach (char c in textBox1!.Text){if (!char.IsLetter(c)){MessageBox.Show("输入的不是纯字母", "验证2");return;}else{ }}MessageBox.Show("输入的是纯字母", "验证2");}else{MessageBox.Show("字符串不能为空", "验证2");}}/// <summary>/// 验证字符串是否为大小写字母组成/// 等效的正则:^[A-Za-z]{1,}$、^[A-Za-z]+$/// </summary>/// <param name="str_Letter">字符串</param>/// <returns>方法返回布尔值</returns>public static bool IsLetter(string str_Letter){return MyRegex().IsMatch(str_Letter);}[System.Text.RegularExpressions.GeneratedRegex(@"^[A-Za-z]*$")]private static partial System.Text.RegularExpressions.Regex MyRegex();}
}

2.生成效果 

 

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

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

相关文章

【C语言】数组的应用:扫雷游戏(包含扩展和标记功能)附完整源代码

这个代码还是比较长的&#xff0c;为了增加可读性&#xff0c;我们还是把他的功能分装到了test.c&#xff0c;game.c&#xff0c;game.h里面。 扫雷游戏的规则相信大家来阅读本文之前已经知晓了&#xff0c;如果点到雷就输了&#xff0c;如果不是雷&#xff0c;点到的格子会显…

Pytorch-统计学方法、分布函数、随机抽样、线性代数运算、矩阵分解

Tensor中统计学相关的函数 torch.mean() #返回平均值 torch.sum() #返回总和 torch.prod() #计算所有元素的积 torch.max() # 返回最大值 torch.min() # 返回最小值 torch.argmax() #返回最大值排序的索引值 torch.argmin() #返回最小值排序的索引值 torch.std() #返回标准差 …

BEV感知算法学习

BEV感知算法学习 3D目标检测系列 Mono3D(Monocular 3D Object Detection for Autonomous Driving) 流程&#xff1a; 通过在地平面上假设先验&#xff0c;在3D空间中对具有典型物理尺寸的候选边界框进行采样&#xff1b;然后我们将这些方框投影到图像平面上&#xff0c;从而避…

JAVA 栈的实现

洗盘子 时间限制&#xff1a;1.000S 空间限制&#xff1a;128MB 题目描述 在餐厅里&#xff0c;洗盘子的工作需要使用到栈这种数据结构。 假设你手里有一个盘子堆放区。现在需要模拟洗盘子的过程&#xff0c;每个盘子都有一个编号。 盘子堆放区操作说明&#xff1a; 1…

在 Windows 10 上使用 Visual Studio 2022 进行 C++ 桌面开发

工具下载链接&#xff1a;https://pan.quark.cn/s/c70b23901ccb 环境介绍 在今天的快速发展的软件开发行业中&#xff0c;选择合适的开发环境是非常关键的一步。对于C开发人员来说&#xff0c;Visual Studio 2022&#xff08;VS2022&#xff09;是一个强大的集成开发环境&…

C#中检查空值的最佳实践

C#中检查空值的最佳实践 在C#编程中&#xff0c;处理空值是一项基础且重要的任务。正确地检查变量是否为null可以帮助我们避免NullReferenceException&#xff0c;这是C#最常见的运行时错误之一。本文将探讨为什么使用is关键字进行空值检查是一种优于使用的做法。 操作符&…

YOLOv7改进:下采样系列 | 一种新颖的基于 Haar 小波的下采样HWD,有效涨点系列

💡💡💡本文独家改进:HWD的核心思想是应用Haar小波变换来降低特征图的空间分辨率,同时保留尽可能多的信息,与传统的下采样方法相比,有效降低信息不确定性。 💡💡💡使用方法:代替原始网络的conv,下采样过程中尽可能包括更多信息,从而提升检测精度。 收录 YO…

C程序设计(第5版)谭浩强习题解答 第7章 用函数实现模块化程序设计

C程序设计(第5版)谭浩强习题解答 第7章 用函数实现模块化程序设计 1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输人。 //7.1.1 #include <stdio.h> int main() {int hcf(int, int);int lcd(int, int, in…

聊聊DoIP吧(一)

DoIP是啥? DoIP代表"Diagnostic over Internet Protocol",即互联网诊断协议。它是一种用于在车辆诊断中进行通信的网络协议。DoIP的目标是在现代汽车中实现高效的诊断和通信。通过使用互联网协议(IP)作为通信基础,DoIP使得诊断信息能够通过网络进行传输,从而提…

uniCloud -- uniIdRouter自动路由

目录 自动路由 云对象响应触发needLogin 获取当前用户信息getCurrentUserInfo 实战应用 个人中心页面 pages.json配置 uni-id自动路由 uni_modules\uni-id-pages/common 登录页面store修改 自动路由 支持的HBuilderX版本 uni-appuni-app x3.5.03.99 uniIdRouter 是一…

前端学习笔记 | 响应式网页+Boostrap

一、响应式网页 一套代码适应多端 1、媒体查询media(条件){css} max-width 小于等于max-width生效min-width 【案例】左侧隐藏 因为CSS的层叠性&#xff0c;书写顺序&#xff1a;max-width从大到小&#xff1b;min-width从小到大。 【媒体查询完整写法】 在html中link用于不同…

前端小案例——导航回顶部(HTML+CSS+JS, 附源码)

一、前言 实现功能&#xff1a; 这个案例实现了页面滚动到一定位置时显示"回到顶部"按钮&#xff0c;并且点击按钮能够平滑滚动回页面顶部的功能。 实现逻辑&#xff1a; 页面结构&#xff1a;通过HTML标签定义了页面的基本结构。页面主要由多个div.content组成&am…

Springboot整合Websocket实现ws和wss连接

1. 引入pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.7.10</version> </dependency>2. 新建websocket配置文件 import org.springf…

Linux笔记之bash和expect脚本中的$和$argv参数匹配

Linux笔记之bash和expect脚本中的 和 和 和argv参数匹配 —— 杭州 2024-02-03 code review! 文章目录 Linux笔记之bash和expect脚本中的 和 和 和argv参数匹配1.bash脚本2.expect脚本 1.bash脚本 在Linux的bash脚本中&#xff0c;参数和脚本文件名的变量使用方式与你提供的稍…

springboot(ssm银行柜台管理系统 银行账户管理系统Java系统

springboot(ssm银行柜台管理系统 银行账户管理系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&a…

曲线拟合、多项式拟合、最小二乘法

最近在做自车轨迹预测的工作&#xff0c;遇到 曲线拟合、多项式拟合、最小二乘法这些概念有点不清晰&#xff0c; 做一些概念区别的总结&#xff1a; 曲线拟合用于查找一系列数据点的“最佳拟合”线或曲线。 大多数情况下&#xff0c;曲线拟合将产生一个函数&#xff0c;可用于…

Java volatile关键字是否能保证线程安全

是的&#xff0c;Java中的volatile关键字可以用于保证线程安全。 volatile关键字的作用是确保多线程环境下的变量可见性。当一个共享变量被volatile修饰后&#xff0c;它会保证修改的值会立即被更新到主内存&#xff0c;当有其他线程需要读取这个变量时&#xff0c;它会去主内…

数论基础知识(整除,质数,合数,质因数,取模,同余)

整除 ​ 整除的定义&#xff1a;设a,b∈Z&#xff0c;a≠0。如果q∈Z&#xff0c;使得baq&#xff0c;那么就说b可被a整除&#xff0c;记作a&#xff5c;b。 ​ 若整数a除以非零整数b&#xff0c;商为整数&#xff0c;且余数为零&#xff0c; 我们就说a能被b整除&#xff08;…

蓝桥杯省赛无忧 课件70 第九次学长直播带练配套课件

01 混境之地5 02 最快洗车时间 03 安全序列 04 可构造的序列总数 05 拍照 06 破损的楼梯

Android Display显示框架整体流程

一.Android Display显示框架整体流程图