C#用正则表达式判断字符串是否纯数字vs用Char.IsDigit 方法遍历字符数组是否纯数字

目录

一、使用的方法

1.正则表达式

2.Char.IsDigit 方法

二、源码

1.源代码

2.生成效果


一、使用的方法

1.正则表达式

        在程序运行过程中,经常需要用户输入数字信息,如输入员工年龄、工资等。使用正则表达式Regex类的IsMatch方法,可以有效地判断用户输入的信息是否为数字。

        用于判断字符串是否纯数字的正则表达式可以是:^[0-9]*$,其中,[0-9]*表示匹配零个至多个数字,“*”限定符用于限定指定的字符至少出现0次。实现相同目的的正则表达式还可以是:^\d*$、^\d+$。

2.Char.IsDigit 方法

        先用ToCharArray()静态方法把输入的字符串转成字符数组,再对数组遍历并用Char.IsDigit()方法判断数组中是否包含非数字,一旦包含非数字就显示输入的字符不是纯数字。

        下面分享源码: 

二、源码

1.源代码

// 用正则表达式验证是否纯数字
// 用Char.IsDigit 方法遍历字符串是否纯数字
namespace _078
{public partial class Form1 : Form{private GroupBox? groupBox1;private TextBox? textBox1;private Button? button1;private Label? label1;private Button? button2;public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // textBox1// textBox1 = new TextBox{Location = new Point(146, 17),Name = "textBox1",Size = new Size(100, 23),TabIndex = 2};// // button1// button1 = new Button{Location = new Point(171, 44),Name = "button1",Size = new Size(75, 23),TabIndex = 1,Text = "验证1",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // label1// label1 = new Label{AutoSize = true,Location = new Point(35, 23),Name = "label1",Size = new Size(80, 17),TabIndex = 0,Text = "输入字符串:"};// // button2// button2 = new Button{Location = new Point(171, 71),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, 12),Name = "groupBox1",Size = new Size(280, 100),TabIndex = 0,TabStop = false,Text = "groupBox1"};groupBox1.Controls.Add(button2);groupBox1.Controls.Add(textBox1);groupBox1.Controls.Add(button1);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";StartPosition = FormStartPosition.CenterScreen;Text = "正则表达式判断输入是否纯数字";groupBox1.ResumeLayout(false);groupBox1.PerformLayout();}private void Button1_Click(object? sender, EventArgs e){if (!(textBox1!.Text == "")){if (!IsNumber(textBox1!.Text.Trim())){MessageBox.Show("输入的字符不是纯数字", "验证1");}else{MessageBox.Show("输入的字符是纯数字", "验证1");}}else{MessageBox.Show("输入的字符不能为空", "验证1");}}/// <summary>/// 先用ToCharArray()方法把输入的字符串转成字符数组/// 再对字符数组遍历,用Char.IsDigit()方法判断数组中是否包含非数字/// 一旦包含非数字就显示输入的字符不是纯数字/// </summary>private void Button2_Click(object? sender, EventArgs e){   if (!(textBox1!.Text == "")){char[] charArr = textBox1!.Text.ToCharArray();foreach (char c in charArr){if (!Char.IsDigit(c)){MessageBox.Show("输入的字符不是纯数字", "验证2");return;}}MessageBox.Show("输入的字符是纯数字", "验证2");}else{MessageBox.Show("输入的字符不能为空", "验证2");}}/// <summary>/// 验证输入是否为数字/// 等效的正则^\d*$、^\d+$/// </summary>/// <param name="number">用户输入的字符串</param>/// <returns>方法返回布尔值</returns>public static bool IsNumber(string number){return MyRegex().IsMatch(number);}//[System.Text.RegularExpressions.GeneratedRegex(@"^[0-9]*$")][System.Text.RegularExpressions.GeneratedRegex(@"^\d+$")]private static partial System.Text.RegularExpressions.Regex MyRegex();}
}

2.生成效果

 

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

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

相关文章

产业热点 | 从 Vision Pro 发售,洞见空间计算时代新机遇

*图源&#xff1a;Apple 官网 近日首批 Vision Pro 启动预约发售&#xff0c;短短一周就预估售出 20 万台&#xff0c;如今正式发售在即&#xff0c;再度受到各界的热切关注。 *图源&#xff1a;Apple 官网 同样作为空间计算赛道企业&#xff0c;ALVA Systems 在过去十余年始…

2024年美赛数学建模A题思路模型代码

​2024年美赛ABCDEF题思路模型代码论文&#xff1a;开赛后2.2早上第一时间更新&#xff0c;详细内容见文末名片 目录 下面是我对美赛的一些看法&#xff0c;大家可以参考 赛题思路代码模型论文&#xff1a;开赛后第一时间更新&#xff0c;获取见文末名片 总说&#xff08;历年美…

ubuntu20配置mysql8

首先更新软件包索引运行 sudo apt update命令。然后运行 sudo apt install mysql-server安装MySQL服务器。 安装完成后&#xff0c;MySQL服务将作为systemd服务自动启动。你可以运行 sudo systemctl status mysql命令验证MySQL服务器是否正在运行。 连接MySQL 当MySQL安装…

【免费分享】数据可视化-银行动态实时大屏监管系统,含源码

一、动态效果展示 1. 动态实时更新数据效果图 ​ 2. 鼠标右键切换主题 二、确定需求方案 1. 屏幕分辨率 这个案例的分辨率是16:9&#xff0c;最常用的的宽屏比。 根据电脑分辨率屏幕自适应显示&#xff0c;F11全屏查看&#xff1b; 2. 部署方式 B/S方式&#xff1a;支持…

SpringBoot+Redis如何实现用户输入错误密码后限制登录(含源码)

点击下载《SpringBootRedis如何实现用户输入错误密码后限制登录&#xff08;含源码&#xff09;》 1. 引言 在当今的网络环境中&#xff0c;保障用户账户的安全性是非常重要的。为了防止暴力破解和恶意攻击&#xff0c;我们需要在用户尝试登录失败一定次数后限制其登录。这不…

全程云OA未授权访问+SQL注入漏洞复现 [附POC]

文章目录 全程云OA未授权访问+SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现全程云OA未授权访问+SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利…

【开发实践】python使用 moviepy实现mp4转gif(含可视化界面)

一、分析介绍 MoviePy是一个用于视频编辑和处理的Python库。它提供了一种简单而直观的方式来创建、编辑和合成视频&#xff0c;同时也支持添加音频和图像。 以下是MoviePy的一些主要功能和用法示例&#xff1a; 创建视频剪辑&#xff1a; from moviepy.editor import VideoFi…

visual studio 0x800700d8怎么解决

遇到Visual Studio中的0x800700d8错误通常表示在尝试执行某个操作时遇到了问题&#xff0c;这可能是由于系统组件缺失、文件损坏、权限问题或其他系统级错误导致的。下面是一些详细的解决步骤&#xff0c;你可以尝试按照这些步骤来解决问题&#xff1a; 运行Windows更新&#…

如何做好多平台内容营销?媒介盒子分享

随着社交媒体不断多元化&#xff0c;内容营销逐渐发展出了新趋势&#xff0c;那就是跨平台内容营销。互联网平台相对封闭&#xff0c;平台的运营偏好也会吸引不同社区的粉丝聚集&#xff0c;造就其不同的品牌人格&#xff0c;然后用户个体需求极其复杂&#xff0c;兴趣也在不断…

Arcgis10.3安装

所需软件地址 链接&#xff1a;https://pan.baidu.com/s/1aAykUDjkaXjdwFjDvAR83Q?pwdbs2i 提取码&#xff1a;bs2i 1、安装License Manager 点击License Manager.exe&#xff0c;默认下一步。 安装完&#xff0c;点击License Server Administrator&#xff0c;停止服务。…

大数据学习之Redis,十大数据类型的具体应用(四)

3.8 Redis基数统计&#xff08;HyperLogLog&#xff09; 需求 统计某个网站的UV、统计某个文章的UV 什么是UV unique Visitor &#xff0c;独立访客&#xff0c;一般理解为客户端IP 大规模的防止作弊&#xff0c;需要去重复统计独立访客 比如IP同样就认为是同一个客户 需要去…

滑动窗口入门(算法村第十六关青铜挑战)

窗口&#xff1a;窗口其实就是两个变量left和ight之间的元素&#xff0c;也可以理解为一个区间。窗口大小可能固定&#xff0c;也可能变化。滑动&#xff1a;窗口是移动的&#xff0c;事实上移动的仍然是left和ight两个变量&#xff0c;而不是序列中的元素。当变量移动的时&…

OpenGL着色器对象 Shader Objects

着色器对象 要创建着色器对象&#xff0c;你可以使用以下命令&#xff1a; uint glCreateShader( enum type );当创建着色器对象时&#xff0c;它最初是空的。type 参数指定要创建的着色器对象的类型&#xff0c;必须是指示相应着色器阶段的值之一。以下是该命令的简要概述&a…

算法笔记刷题日记——Day1 C_C++在ACM中的常用语法

写在前面 这学期选了ACM课&#xff0c;但平时缺乏练习&#xff0c;不怎么刷题&#xff0c;因此期末考试成绩并不理想。考虑到之后的考研复试中包含机试&#xff0c;且计试可以算是非常重要的印象分&#xff0c;因此我打算寒假刷一下算法笔记&#xff0c;备战3月初的PAT甲级和3…

【前端学习路线】

前端学习路线 1. 大纲: 前端学习路线2. ES6 语法1. let 和 const2. 箭头函数3. 解构3.1 数组解构3.2 对象解构 4 剩余参数4.1 和解构联用4.2 合并数组 5. 可选链6. Set7.数组操作8.字符串扩展方法8.1 startsWith() 和 endsWith()8.2 模板字符串 1. 大纲: 前端学习路线 学习前端…

【Android 字节码插桩】Gradle插件基础 Transform API的使用

前言 啪~我给大家开个会&#xff08;手机扔桌子上&#xff09; 什么叫做 客户无感的数据脱敏&#xff01;&#xff1f; 师爷给翻译翻译什么叫做客户无感的数据脱敏&#xff1f; 什么特么的叫做客户无感数据脱敏&#xff1f; 举个栗子~ 客户端Sdk新升级了一个版本&#xff0c;增…

Jmeter,如何从数组参数中取值

有个post请求&#xff0c;参数“equipment_ids”&#xff0c;是个数组&#xff0c;需求每次执行的时候&#xff0c;按顺序取equipment_ids中不同的值 要实现在 JMeter 中每次执行请求时按顺序取不同的 equipment_ids 中的值&#xff0c;你可以使用 Counter 元件来生成索引&…

Qt读写Execl:QXlsx库

Qt三方库开发技术&#xff1a;QXlsx介绍、编译和使用 我自己记录的实例代码&#xff1a;https://download.csdn.net/download/cao_jie_xin/88795216 目录 一、概述二、下载三、编译四、加载QXlsx静态库五、介绍一些常用的功能1、一些头文件和命名空间2、创建一个excel文件3、…

vue-cli脚手架的安装

vue-cli 1 什么是vue-cli Vue 提供了一个官方的 CLI&#xff0c;为单页面应用 (SPA) 快速搭建繁杂项目的脚手架。它为现代前端工作流提供了 batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint 校验&#xff0c;以及生产环境可用的构…

2024年1月个人工作生活总结

本文为 2024年1月工作生活总结。 研发编码 docker-compose外部网络配置 高版本的docker-compose有些语法变化。 使用如下方式声明外部网络&#xff1a; version: 3.8services:ll-busybox: ...networks:my-net:ipv4_address: 172.100.1.1 networks:my-net:external:name: &q…