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 次
?: 重复零次或一次
+: 重复一次或更多次
*重复零次或更多次