字符串

C#基础对象

字符串对象、object对象、集合(array)对象、数组对象、I/O流(File)、Socket

字符串对象

String对象

1,定义:是一连串字符组成,是引用类型;

2,string关键字是System.String类的别名;

3,字符串初始化之后里面的内容不再发生改变,当引用指针发生改变先创建一个新的String对象,然后存储新的引用地址;

4,属性:

Length:返回字符串中字符的长度

Chars:可以将字符串当成数组,使用索引获取某个字符

5,方法

静态方法

①Compare():比较两个字符串的长度,前面长,返回1;后面长,返回-1;长度、内容相等,返回0;长度相同,内容完全不同,返回-1;

②Concat():将多个对象类型链接起来;

③Copy():复制一个字符串并返回复制结果;

Format():

格式化字符串,使字符串成为标准的字符串,在使用占位符最好对字符串进行格式化处理;

字符串格式化Format()

1,数值类值数据的格式化

C/c:货币

E/e:科学计数法

X/x:转换成十六进制表示

F/f:输出小数点后几位

N/n:输出以分割符显示出数字

P/p:百分号

2,日期时间类型的格式化

d:短日期形式 eg:2019/01/15

D:长日期形式 eg:2019年01月15日

f:完整日期时间形式(短时间) eg:2019年01月15日 15:30

F:完整日期时间形式(长时间) eg:2019年01月15日 15:30:22

g:常规时间时间形式(短时间) eg:2019/01/15 15:30

G:常规时间时间形式(长时间) eg:2019/01/15 15:30:22

M/m:月/日格式:01月15日

t:短时间 eg:15:30

T:长时间 eg:15:30:22

Y/y:年/月 eg:2019年01月

⑤IsNullOrEmpty():判断如果字符串是null或空字符串或Empty,返回true;

⑥IsNullOrWhiteSpace():判断字符串是null或空字符串或Empty,或字符串中没有可显示的字符内容,都返回true;

⑦Join():串联一个对象数组里面的每一项,使用一个字符串做连接标志。

非静态方法

1,Clone():返回对此String实例的引用;

2,Contains():检测在操作的字符串中是否能够找到参数中填写的字符串,能找到,返回true,否则false;

3,CopyTo():将操作的字符串中的某段字符,复制到一个char数组中;

4,EndsWith():检测操作的字符串的结尾是否和参数字符串相同,返回true;

5,IndexOf():检测操作的字符串中的某个字符或字符串的索引,找不到返回-1;

6,Insert():在操作的字符串中的某个位置插入一个字符串;

7,LastIndexOf():检测操作的字符串中的某个字符或字符串的索引,找不到返回-1,倒着找;

8,PadLeft():复制操作的字符串到一个新的字符串中,新字符串的长度为所填参数,如果新字符串长度过长,在操作字符串左边填充空格或指定字符,达到长度,如果小于或等于操作字符串,则直接复制字符串;

9,PadRight():同PadLeft,在右边使用空格或指定字符填充;

10,Remove():(1)第一重载:从指定的这个索引开始删除整个字符串之后;(2)从指定索引删除指定长度等;

11,Replace():替换操作字符串中的某个字符中的所有的某个字符或字符串;

12,Split():将操作字符串通过其内部的某个字符或多个字符进行分割;

13,StartsWith():检测操作的字符串开头,同4;

14,SubString():将操作的字符串在指定索引位置往后截取,也可以指定截取的长度;

15,ToLower():将字符串中的大写字母全部转换为小写字母;

16,ToUpper():将字符串中的小写字母全部转换为大写字母;

17,Trim():去掉操作字符串两边的空格;

18,TrimEnd()、TrimStart():去掉结尾或开始的空格;

StringBuilder对象

1,表示可变字符串,来自System.Text命名空间,自身是类,使用必须实例化,支持空参数构造,默认空字符串,属于引用类型;

2,初始化过程可以指定初始大小,如果字符不论如何改变,不超过指定范围则不会更改存储位置引用;

3,如果字符串改变后长度超出初始化大小,则在堆里面开辟一个新的地址空间,将原来的字符串中的内容复制到新的空间中,再追加超出的长度内容,旧的空间会自动销毁,然后引用指向新的空间地址,新的空间大小是旧空间大小的基础倍(最初始的基础倍)。

关键字

null:指对象不存在

Empty/“ ”:指对象已经创建其内容为空

正则表达式

命名空间:Using System.Text.RegularExpressions;

概述:是一种专门用于字符串处理的语言

作用:检索、验证

两个功能:①用于表达字符类型的转义代码;②一个系统,在搜索操作中,它把子字符和中间结果的各个部分集合起来。

正则表达式是针对字符串中的每个字符独立进行验证的。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace _02正则表达式
{
    class Program
    {
        static void Main(string[] args)
        {
            //QQ条件:5-12纯数字   第一位不能为0
            //Console.WriteLine("请输入你的QQ号:");
            //string qq = Console.ReadLine();
            //手机号码: 11位纯数字  第一位不能为0
            //string pattern =@"^1(\d){ 10}$";
            //QQ条件:5-12纯数字   第一位不能为0
            //string pattern = @"^[1-9](\d){4,11}$";
            //QQ邮箱:
            //string pattern = "(@(qq||163||126).com)$";
            //while (Regex.IsMatch(qq,pattern)==false)
            //{
            //    Console.WriteLine("您输入的QQ有误,请重新输入!");
            //    qq = Console.ReadLine();
            //}
            //Console.WriteLine("输入正确");
            //判断:IPv4地址
            //由四部分组成,每部分之间有“.”隔开
            //第一部分:不能是0  1-223之间
            //第二、三部分0-255之间
            while (true)
            {

                Console.WriteLine("请输入IPv4地址:");
                string IP = Console.ReadLine();
                //string pattern = @"^((22[0-3]|2[0-1]\d|1\d\d|[1-9]\d|[1-9]))(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$";
                string pattern = @"^([1-9]\d?|1\d{2}|(2[0-1]\d)|(22[0-3]))(.((1?\d\d?)|(2[0-4]\d)|(25[0-5]))){3}$";
                while (!Regex.IsMatch(IP,pattern))
                {
                    Console.WriteLine("输入有误,请重新输入!");
                    IP = Console.ReadLine();
                }
                Console.WriteLine("输入正确");




                Console.ReadLine();
            }
    }
    }
}

元字符

①定位元字符

\b:匹配单词的开始或结束

\B:匹配非单词的开始或结束

^:匹配字符串的开头

$:匹配字符串的结尾

②基本语法元字符

. :匹配除换行符以外的任意字符
\w: 匹配字母、数字、下划线、汉字 (指大小写字母、0-9 的数字、下划线_)
\W: \w 的补集 ( 除“大小写字母、0-9 的数字、下划线_”之外)
\s: 匹配任意空白符 (包括换行符/n、回车符/r、制表符/t、垂直制表符/v、换页符/f)
\S: \s 的补集 (除\s 定义的字符之外)
\d: 匹配数字 (0-9 数字)
\D: 表示\d 的补集 (除 0-9 数字之外)

③反义字符

\B: 匹配不是单词开头或结束的位置
[ab]: 匹配中括号中的字符
[a-c]: a 字符到 c 字符之间是字符
[^x]: 匹配除了 x 以外的任意字符
[^adwz]: 匹配除了 adwz 这几个字符以外的任意字符

④重复描述字符

{n}: 匹配前面的字符 n 次
{n,}:匹配前面的字符 n 次或多于 n 次
{n,m}: 匹配前面的字符 n 到 m 次
?: 重复零次或一次
+: 重复一次或更多次

*重复零次或更多次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值