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.源码

cs 复制代码
// 判断字符串中的数字并显示
// 使用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.生成效果

相关推荐
努力的小雨1 分钟前
快速上手 KSQL:轻松与数据库交互的利器
数据库·经验分享
Gentle5863 分钟前
labview中连接sql server数据库查询语句
数据库·labview
Gentle5864 分钟前
labview用sql server数据库存取数据到一个单元格
数据库·labview
2401_857636397 分钟前
共享汽车管理新纪元:SpringBoot框架应用
数据库·spring boot·汽车
菲兹园长8 分钟前
表的设计(MYSQL)
数据库·mysql
wyh要好好学习22 分钟前
C# WPF 记录DataGrid的表头顺序,下次打开界面时应用到表格中
开发语言·c#·wpf
AitTech22 分钟前
C#实现:电脑系统信息的全面获取与监控
开发语言·c#
Java Fans23 分钟前
MySQL数据库常用命令大全(完整版——表格形式)
数据库·mysql
还是大剑师兰特25 分钟前
D3的竞品有哪些,D3的优势,D3和echarts的对比
前端·javascript·echarts
王解26 分钟前
【深度解析】CSS工程化全攻略(1)
前端·css