C#高级编程(一)

1.字符串和正则表达式

C#高级编程(一)_第1张图片

C#高级编程(一)_第2张图片

1,CompareTo()方法,比较字符串的内容
2,Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串
3,Split()在出现给定字符的地方,把字符串拆分称一个字符串数组
4,SubString()在字符串中检索给定位置的子字符串
5,ToLower()把字符串转换成小写形式
6,ToUpper()把字符串转换成大写形式
7,Trim()删除首尾的空白


8,Concat()方法,合并字符串
9,CopyTo()方法,把字符串中指定的字符复制到一个数组中
10,Format()方法,格式化字符串
11,IndexOf()方法,取得字符串第一次出现某个给定字符串或者字符的位置,判断是否包含子字符串
12,IndexOfAny()方法,
13,Insert()把一个字符串实例插入到另一个字符串实例的制定索引处
14,Join()合并字符串数组,创建一个新字符串


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 字符串String
{
    class Program
    {
        static void Main(string[] args)
        {
            //  string s = "www.devsiki.com";   //使用string类型去存储字符串类型,使用双引号引起来
            //int lengh = s.Length;

            //if (s == "www.devsiki.com")
            //{
            //    Console.WriteLine("相同");
            //}
            //else
            //{
            //    Console.WriteLine("不相同");
            //}
            //Console.WriteLine(lengh);
            //s = "http://" + s;
            //Console.WriteLine(s);
            //char c = s[3];
            //Console.Write(c);
            //for(int i = 0; i < s.Length; i++)
            //{
            //    Console.WriteLine(s[i]);
            //}
            //string s = "si,ki";
            int res = s.CompareTo("szki");  //当两个字符串相等的时候,返回0,当s在字母表排序靠前的时候,返回-1,否则返回1
            Console.WriteLine(res);
              string newStr= s.Replace(',', '-');
            //string newStr = s.Replace(",", "---");  //把指定的字符换成指定的字符或者字符串
            //Console.Write(newStr);
            string s = "www.siki.com";
            //string[] strArray = s.Split('.');
            //foreach(var temp in strArray)
            //{
            //    Console.WriteLine(temp);
            //}
            string str = s.Substring(4, 4);
            Console.WriteLine(str);
            Console.ReadKey();

        }
    }
}

C#高级编程(一)_第3张图片

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _002_字符串StringBuilder
{
    class Program
    {
        static void Main(string[] args)
        {
            //1,
            // StringBuilder sb = new StringBuilder("www.devsiki.com");//利用构造函数创建stringbuilder
            //2
            //StringBuilder sb = new StringBuilder(20);  //初始一个空的stringBuiler对象,占有20个字符的大小
            //3
            StringBuilder sb = new StringBuilder("www.desiki.com", 100);  //内容可变,string内容不可变、
            //sb.Append("/xxx.html");  //增加到原来字符串的后面
            //当我们需要对一个字符串进行频繁的删除和操作的时候,使用stringBuilder的效率比较高
            //Console.WriteLine(sb.ToString());
            //Console.ReadKey();
            //string s = "www.desiki.com";
            //s = s + "/xxx.html";
            //Console.WriteLine(s);
            //Console.ReadKey();
            
            //sb.Insert(0,"http://");
            //sb.Remove(0, 3);
            //sb.Replace('.', '-');

        }
    }
}

正则表达式

C#高级编程(一)_第4张图片

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

namespace _003_正则表达式
{
    class Program
    {
        static void Main(string[] args)
        {
            // string s = "I am blue cat.";
            //string res= Regex.Replace(s,"^","开始:");//搜索字符串符合正则表达式的情况,然后把所有符合的位置替换成后面的字符串
            // Console.WriteLine(res);
            // Console.ReadKey();

            //string res = Regex.Replace(s, "$", "结束");  //匹配结尾
            //Console.WriteLine(res);
            //Console.ReadKey();

            string s = Console.ReadLine();
            //bool isMatch = true;//默认标志位,表示s是一个合法密码(全部是数字)
            //for (int i=0;i < s.Length; i++)
            //{
            //    if (s[i] < '0' || s[i] > '9')  //当前字符如果不是数字字符
            //    {
            //        isMatch = false;
            //    }
            //}
            //if (isMatch)
            //{
            //    Console.WriteLine("是一个合法密码");
            //}
            //else
            //{
            //    Console.WriteLine("不是一个合法密码");
            //}


            //Console.ReadKey();
            string pattern = @"^\d*$";//正则表达式  ^表示开头$表示结尾/d*表示一个或者多个数字
            bool isMatch=  Regex.IsMatch(s,pattern);//意思是匹配s符合pattern的条件
            Console.WriteLine(isMatch);
            Console.ReadKey();

        }
    }
}

C#高级编程(一)_第5张图片

C#高级编程(一)_第6张图片

C#高级编程(一)_第7张图片

下面学习一下位于System.Text.RegularExpressions下的Regex类的一些静态方法和委托
1,静态方法IsMatch (返回值是一个布尔类型,用于判断指定的字符串是否与正则表达式字符串匹配,它有三个重载方法)
bool IsMatch(string input, string pattern);
参数: input:       要搜索匹配项的字符串。
pattern:     要匹配的正则表达式模式。
返回结果:  如果正则表达式找到匹配项,则为 true;否则,为 false。
bool IsMatch(string input, string pattern, RegexOptions options);
参数: input:       要搜索匹配项的字符串。
pattern:     要匹配的正则表达式模式。
options:     枚举值的一个按位组合,这些枚举值提供匹配选项。
返回结果:  如果正则表达式找到匹配项,则为 true;否则,为 false。
bool IsMatch(string input, string pattern, RegexOptions options, TimeSpan matchTimeout);
参数: input:        要搜索匹配项的字符串。
pattern:      要匹配的正则表达式模式。
options:      枚举值的一个按位组合,这些枚举值提供匹配选项。
matchTimeout: 超时间隔,或 System.Text.RegularExpressions.Regex.InfiniteMatchTimeout 指示该方法不应超时。

返回结果:  如果正则表达式找到匹配项,则为 true;否则,为 false。



它是一个枚举类型,有以下枚举值
RegexOptions枚举值 内联标志 简单说明
ExplicitCapture n 只有定义了命名或编号的组才捕获
IgnoreCase i 不区分大小写
IgnorePatternWhitespace x 消除模式中的非转义空白并启用由 # 标记的注释。
MultiLine m 多行模式,其原理是修改了^和$的含义
SingleLine s 单行模式,和MultiLine相对应


内敛标志可以更小力度(一组为单位)的定义匹配选项



C#高级编程(一)_第8张图片

C#高级编程(一)_第9张图片

我们知道正则表达式主要是实现验证,提取,分割,替换字符的功能.Replace函数是实现替换功能的.
1 )Replace(string input,string pattern,string replacement)  
//input是源字符串,pattern是匹配的条件,replacement是替换的内容,就是把符合匹配条件pattern的内容转换成它
比如string result = Regex.Replace("abc", "ab", "##");  
//结果是##c,就是把字符串abc中的ab替换成##
2 )Replace(string input,string pattern,string replacement,RegexOptions options)      
//RegexOptions是一个枚举类型,用来做一些设定.
//前面用注释时就用到了RegexOptions.IgnorePatternWhitespace.如果在匹配时忽略大小写就可以用RegexOptions.IgnoreCase
比如string result = Regex.Replace("ABc", "ab", "##",RegexOptions.IgnoreCase);

如果是简单的替换用上面两个函数就可以实现了.但如果有些复杂的替换,比如匹配到很多内容,不同的内容要替换成不同的字符.就需要用到下面两个函数


C#高级编程(一)_第10张图片

C#高级编程(一)_第11张图片

C#高级编程(一)_第12张图片

C#高级编程(一)_第13张图片

C#高级编程(一)_第14张图片

C#高级编程(一)_第15张图片

C#高级编程(一)_第16张图片

你可能感兴趣的:(C#高级编程(一))