C#查找字符串中的所有数字: 面向对象的自定义方法 vs 使用char.IsDigit()方法

目录

一、涉及到的方法

1.面向对象的自定义方法

2.面向对象编程技术定义

3.使用char.IsDigit()方法

二、实例

1.源码

2.生成效果


一、涉及到的方法

1.面向对象的自定义方法

        查找字符串中的所有数字时,首先将所有数字存储到一个字符串数组中,然后循环遍历要在其中查找数字的字符串,如果与定义的字符串数组中的某一项相匹配,则记录该项,循环执行该操作,最后得到的结果就是字符串中的所有数字。

        实例中的查找1主要用到了面向对象编程中的自定义方法。

        自定义方法主要用来完成类或对象的行为,在面向对象编程语言中,类或对象是通过方法来与外界交互的。所以,方法是类与外界交互的基本方式。

2.面向对象编程技术定义

        面向对象编程技术也叫OOP技术,它是计算机软件开发中的一种新方法、新思想。在过去的面向过程编程中,经常将所有的代码都包含在几个模块中,这样,当做某些修改时,常常是牵一发而动全身,不容易开发和维护。使用面向对象技术开发软件时,也可以将软件分成几个模块,每个模块都有特定的功能,但是,模块之间是相互独立,同时又是相互联系的,模块的代码可以重用,这样大大增加了代码的使用率,有利于软件的开发和维护。

3.使用char.IsDigit()方法

        先把输入的字符串转换成字符数组,遍历该字符数组并使用使用char.IsDigit()方法判断其是否为数字,如果是则输出该数字。

        关于char.IsDigit()方法的用法,详见本文作者的其他文章,C#的Char 结构的像IsLetterOrDigit(Char)等常见的方法-CSDN博客  https://wenchm.blog.csdn.net/article/details/135354939

二、实例

        本实例使用两种方法实现在字符串中查找到所有的数字,然后输出数字。

        查找1:使用面向对象自定义方法,把查找功能设计为一个专有的方法,事件中调用方法;

        查找2:使用char.IsDigit()方法;

1.源码

// 判断字符串中的数字并显示
// 使用char.IsDigit()方法
namespace _115
{
    public partial class Form1 : Form
    {
        private Label? label1;
        private TextBox? textBox1;
        private Button? button1;
        private TextBox? textBox2;
        private Button? button2;
        private TextBox? textBox3;

        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(12, 9),
                Name = "label1",
                Size = new Size(80, 17),
                TabIndex = 0,
                Text = "输入字符串:"
            };
            // 
            // textBox1
            // 
            textBox1 = new TextBox
            {
                Location = new Point(98, 9),
                Multiline = true,
                Name = "textBox1",
                Size = new Size(149, 61),
                TabIndex = 1
            };
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(12, 26),
                Name = "button1",
                Size = new Size(49, 23),
                TabIndex = 2,
                Text = "查找1",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // textBox2
            //
            textBox2 = new TextBox
            {
                Location = new Point(12, 76),
                Multiline = true,
                Name = "textBox2",
                Size = new Size(235, 50),
                TabIndex = 3
            };
            // 
            // button2
            // 
            button2 = new Button
            {
                Location = new Point(12, 49),
                Name = "button2",
                Size = new Size(49, 23),
                TabIndex = 4,
                Text = "查找2",
                UseVisualStyleBackColor = true
            };
            button2.Click += Button2_Click;
            // 
            // textBox3
            // 
            textBox3 = new TextBox
            {
                Location = new Point(12, 132),
                Multiline = true,
                Name = "textBox3",
                Size = new Size(235, 50),
                TabIndex = 5
            };
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(259, 194);
            Controls.Add(textBox3);
            Controls.Add(button2);
            Controls.Add(textBox2);
            Controls.Add(button1);
            Controls.Add(textBox1);
            Controls.Add(label1);
            Name = "Form1";
            Text = "查找字符串中的数字";
        }
        /// <summary>
        /// 查找1
        /// 调用判断是否数字的方法,逐个字符地读取
        /// </summary>
        private void Button1_Click(object? sender, EventArgs e)
        {
            textBox2!.Text = "查找1的数字:";
            string strs = textBox1!.Text;
            for (int i = 0; i < strs.Length; i++)
            {
                string str = strs.Substring(i, 1);
                bool bl = GetNumeric(str);//判断字符是否为数字
                if (bl)
                {
                    textBox2.Text += str + "、";
                }
            }
        }
        /// <summary>
        /// 查找2
        /// 使用char.IsDigit()方法
        /// </summary>
        private void Button2_Click(object? sender, EventArgs e)
        {
            textBox3!.Text = "查找2的数字:";
            char[] chars = textBox1!.Text.ToCharArray();
            foreach (char c in chars)
            {
                if (char.IsDigit(c)) 
                {
                    textBox3!.Text += c + "、";
                }
            }
        }

        /// <summary>
        /// 查找数字方法
        /// 将所有数字存储到一个字符串数组中
        /// 判断字符是否包含数组中指定的数字
        /// </summary>
        public static bool GetNumeric(string str)
        {
            bool bl = false;
            string[] ArrayInt = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
            foreach (string num in ArrayInt)
            {
                if (num == str)
                {
                    bl = true;
                    break;
                }
            }
            return bl;
        }
    }
}

2.生成效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《软件方法(下)》8.2.5.1 类名中是否有形容词(202402更新)

8.2.5.1 类名中是否有形容词 如果存在“形容词&#xff08;的&#xff09;名词”这样的类名&#xff0c;例如“待支付&#xff08;的&#xff09;订单”、“合适&#xff08;的&#xff09;会议室”&#xff0c;可以先把形容词从类名移除&#xff0c;转成类的一个状态属性。很…

Three.JS教程5 threejs中的材质

Three.JS教程5 threejs中的材质 一、什么是Three.js材质&#xff1f;二、Three.js的材质类型1. 材质类型2. 材质的共用属性&#xff08;1&#xff09;.alphaHash : Boolean&#xff08;2&#xff09;.alphaTest : Float&#xff08;3&#xff09;.alphaToCoverage : Boolean&am…

智胜未来,新时代IT技术人风口攻略-第三版(弃稿)

文章目录 前言鸿蒙生态科普调研人员画像高校助力鸿蒙高校鸿蒙课程开设占比教研力量并非唯一原因 机构入场红利机构鸿蒙课程开设占比机构对鸿蒙的一些诉求 企业布局规划全盘接纳仍需一段时间企业对鸿蒙的一些诉求 鸿蒙实际体验高校用户群体场景分析企业用户群体场景分析培训机构…

无人驾驶控制算法LQR和MPC的仿真实现

1 首先来说说LQR 1.1 Problem Statement 首先我们简单的假设一个物理系统&#xff0c;在光滑的一维地面上有一个质量为 m m m 的滑块&#xff0c;初始位置与初始速度都为 0 0 0&#xff0c;现需要设计控制器&#xff0c;在传感器测得滑块位置 x x x 的基础上&#xff0c;为…

Flutter 3.19 发布,快来看看有什么更新吧?

参考链接&#xff1a;https://medium.com/flutter/whats-new-in-flutter-3-19-58b1aae242d2 新年假期的尾巴&#xff0c;Flutter 迎来了 3.19 更新&#xff0c;该版本带来了 Gemini&#xff08;Google’s most capable AI &#xff09; 的 Dart SDK&#xff0c;更好控制动画颗粒…

扶贫|精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;贫困户信息管理 &#xff08;3&#xff09;新闻类型管理 &a…

【论文精读】GPT2

摘要 在单一领域数据集上训练单一任务的模型是当前系统普遍缺乏泛化能力的主要原因&#xff0c;要想使用当前的架构构建出稳健的系统&#xff0c;可能需要多任务学习。但多任务需要多数据集&#xff0c;而继续扩大数据集和目标设计的规模是个难以处理的问题&#xff0c;所以只能…

【MySQL】:DQL查询

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; MySQL从入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. DQL1.1 基本语法1.2 基础查询1.3 条件查询1.3 聚合函数 &#x1f324;️ 全篇…

【AI绘画】硬核解读Stable Diffusion(完整版) 小白必收藏!!!

手把手教你入门绘图超强的AI绘画&#xff0c;用户只需要输入一段图片的文字描述&#xff0c;即可生成精美的绘画。给大家带来了全新保姆级教程资料包 &#xff08;文末可获取&#xff09; 2022年可谓是AIGC&#xff08;AI Generated Content&#xff09;元年&#xff0c;上半年…

【Linux网络编程五】Tcp套接字编程(四个版本服务器编写)

【Linux网络编程五】Tcp套接字编程(四个版本服务器编写&#xff09; [Tcp套接字编程]一.服务器端进程&#xff1a;1.创建套接字2.绑定网络信息3.设置监听状态4.获取新连接5.根据新连接进行通信 二.客户端进程&#xff1a;1.创建套接字2.连接服务器套接字3.连接成功后进行通信 三…

JavaScript中的变量监听:实时捕捉变化的利器

JavaScript中的变量监听&#xff1a;实时捕捉变化的利器 在JavaScript开发中&#xff0c;经常需要监听变量的改变&#xff0c;并在变量值发生变化时执行相应的操作。这种实时捕捉变化的功能对于构建交互性强的应用程序至关重要。本文将介绍如何在JavaScript中监听变量的改变&am…

模型 4C(消费者、成本、编译、沟通)理论

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_总纲目录。重在提升认知。以消费者为中心。 1 4C(消费者、成本、编译、沟通)理论的应用 1.1 4C理论在电子商务中的应用 亚马逊是4C营销战略的成功案例。以下是对亚马逊应用4C理论的详细解读&#xff1a; 消费者&a…

【JavaEE Spring 项目】博客系统

博客系统 前⾔项⽬介绍1. 准备⼯作1.1 数据准备1.2 创建项⽬1.3 准备前端⻚⾯1.4 配置配置⽂件1.5 测试 2. 项⽬公共模块2.1 实体类的编写2.2 公共层 3. 业务代码3.1 持久层3.2 实现博客列表3.3 实现博客详情3.4 实现登陆令牌技术JWT令牌介绍JWT令牌⽣成和校验 3.5 实现强制要求…

Python入门知识点分享——(二十一)多继承和运算符重载

在介绍新的知识之前&#xff0c;我们先对之前的内容做一点补充&#xff0c;在面向对象编程的过程中&#xff0c;一个对象常常被要求具备多方面的功能&#xff0c;从而和多个类产生联系&#xff0c;而这一步的实现就用到了“多继承”。多继承是指一个子类可以继承自多个父类&…

【Linux】Linux编译器-gcc/g++ Linux项目自动化构建工具-make/Makefile

目录 Linux编译器-gcc/g使用 1.背景知识 Linux中头文件的目录在 Linux 库 条件编译的典型应用 2.gcc如何完成 动态库 vs 静态库 debug && release Linux项目自动化构建工具-make/Makefile 背景 用法 特殊符号 Linux编译器-gcc/g使用 1.背景知识 预处理&am…

LabVIEW高效电磁阀性能测试

LabVIEW高效电磁阀性能测试 在核电站的安全运营中&#xff0c;电磁阀作为关键组件&#xff0c;其性能的可靠性至关重要。设计一套基于LabVIEW的电磁阀测试平台&#xff0c;既能精准测试电磁阀的多项性能指标&#xff0c;又能提高检修效率与准确性&#xff0c;进而保障核电站的…

Mock.js

在开发后端的应用中&#xff0c;我们使用postman来测试接口&#xff0c;观察和验证前后端之间的数据传递是否正常。 在开发前端的应用中&#xff0c;我们使用Mock.js来模拟后端服务&#xff0c;以便进行前端业务逻辑的开发和测试。 一般情况下&#xff0c;个人开发或者小团队开…

Codeforces Round 919 (Div. 2)题解(A-E)

https://codeforces.com/contest/1920 A Satisfying Constraints 链接&#xff1a;A - Satisfying Constraints 代码 #include <bits/stdc.h> using namespace std; int main() {int T;cin >> T;while(T--){int n;scanf("%d", &n);vector<int&…

算法沉淀——BFS 解决 FloodFill 算法(leetcode真题剖析)

算法沉淀——BFS 解决 FloodFill 算法 01.图像渲染02.岛屿数量03.岛屿的最大面积04.被围绕的区域 BFS&#xff08;广度优先搜索&#xff09;解决 Flood Fill 算法的基本思想是通过从起始点开始&#xff0c;逐层向外扩展&#xff0c;访问所有与起始点相连且具有相同特性&#xf…

docker (三)-开箱即用常用命令

一 docker架构 拉取镜像仓库中的镜像到本地&#xff0c;镜像运行产生一个容器 registry 镜像仓库 registry可以理解为镜像仓库&#xff0c;用于保存docker image。 Docker Hub 是docker官方的镜像仓库&#xff0c;docker命令默认从docker hub中拉取镜像。我们也可以搭建自己…