1.字符串和正则表达式
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();
}
}
}
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('.', '-');
}
}
}
正则表达式
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();
}
}
}
下面学习一下位于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相对应
内敛标志可以更小力度(一组为单位)的定义匹配选项
我们知道正则表达式主要是实现验证,提取,分割,替换字符的功能.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);
如果是简单的替换用上面两个函数就可以实现了.但如果有些复杂的替换,比如匹配到很多内容,不同的内容要替换成不同的字符.就需要用到下面两个函数