C#字符串操作,转自韩迎龙博客
2021-07-17 00:21
1.1 字符串大小写
方法原型
string
string
例如:用户在输入用户名的时候,可能会大小写输入混乱,但是我们可以转换(全部转换为大写或者全部转化为小写)一下,
使用户也能够登录成功
Console.Write("请您输入用户名:");
//全部转换为大写
string username = Console.ReadLine();
string usernameupper = username.ToUpper();
//全部转换为小写
string usernamelower = username.ToLower();
Console.WriteLine("大写是:{0},小写是:{1}", usernameupper, usernamelower);
1.2 移除首尾指定字符
Trim 移除一组指定字符的首尾匹配项
方法原型
(1)string
string str = " 韩迎龙 ";
string firstendnullstr = str.Trim();
Console.WriteLine(firstendnullstr.Length); 输出信息:3
(2)string
string str = "韩迎龙韩";
string firstendnullstr = str.Trim(new char[] { ‘韩‘ });
Console.WriteLine(firstendnullstr); 输出信息:迎龙
TrimStart 移除一组指定字符的开头匹配项
方法原型
(1)string
string str = " 韩迎龙 ";
string firstendnullstr = str.TrimStart();
Console.WriteLine(firstendnullstr.Length); 输出信息:4
(2)string
string str = "韩迎龙韩";
string firstendnullstr = str.TrimStart(new char[] { ‘韩‘ });
Console.WriteLine(firstendnullstr); 输出信息:迎龙韩
TrimEnd 移除一组指定字符的结尾指定项
方法原型
(1)string
string str = " 韩迎龙 ";
string firstendnullstr = str.TrimEnd();
Console.WriteLine(firstendnullstr.Length); 输出信息:4
(2)string
string str = "韩迎龙韩";
string firstendnullstr = str.TrimEnd(new char[] { ‘韩‘ });
Console.WriteLine(firstendnullstr); 输出信息:韩迎龙
1.3 字符串的比较
Compare()方法
方法原型
(1) int Compare(String,String); //比较两个字符串对象
int strCompare=string.Compare("sFsFsF","Sfsfsf"); //输出信息:0
(2) int Compare(string,String,Boolean) //比较两个字符串对象,是否忽略大小写
int int dou = string.Compare("sdsSD", "sdsSd", true); //输出信息:0
(3) int Compare(String,String,StringComparison) //参数指定比较是使用当前区域性还是固定区域性,
是考虑还是忽略大小写,是使用字排序规则还是序号排序规则。
int dou = string.Compare("dsdssdD", "dsdssdd", StringComparison.OrdinalIgnoreCase); //输出信息0
按照字典排序进行比较
如果strA>StrB,则返回的值大于0
如果strA=strB,则返回的值等于0
如果strA
方法原型
(1)int CompareOrdinal(String,String) //通过计算每个字符串中相应的Char对象的数值来比较两个字符串
int dou = string.CompareOrdinal("a", "c"); //输出结果是:-2
也是按照字典排序
如果strA>StrB,则返回的值大于0
如果strA=strB,则返回的值等于0
如果strA
方法原型
(1) int CompareTo(Object); //将此实例与object进行比较
MyClass my = new MyClass();
string s = "sometext";
try
{
int i = s.CompareTo(my);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
public class MyClass { }
//输出结果是:对象的类型必须是string类型
(2) int CompareTo(string); //将此实例与string进行比较
string str = "a";
int s = str.CompareTo("c"); //输出结果是-1
也是按照字典排序
如果strA>StrB,则返回的值大于0
如果strA=strB,则返回的值等于0
如果strA
方法原则
(1)bool Equals(Object); 确定此String实例是否与指定的对象具有相同的值
StringBuilder sb = new StringBuilder("abcd");
String str1 = "abcd";
Console.WriteLine(str1.Equals(sb));
输出结果:False
(2)bool Equals(String); 确定此实例是否与另一个指定的String对象具有相同的值
string str1 = "abcd";
Console.WriteLine(str1.Equals("abcd"));
//输出结果是True
(3)bool Equals(String,String) 确定两个指定的String对象是否具有相同的值
Console.Write(string.Equals("1234", "1234"));
//输出结果是True
(4)bool Equals(String,StringComparison) 确定此字符串是否与指定的 String 对象具有相同的值。
参数指定区域性、大小写以及比较所用的排序规则。
string str="HanYingLong";
Console.WriteLine(str.Equals("hanyinglong", StringComparison.OrdinalIgnoreCase));
//输出结果是True
(5)bool Equals(String,String,StringComparison) 确定两个指定的 String 对象是否具有同一值。
参数指定区域性、大小写以及比较所用的排序规则。
//Console.WriteLine(string.Equals("AdssdS", "adssds", StringComparison.OrdinalIgnoreCase));
输出结果True
返回值是bool类型,所以我们能够判断出来如果结果相等的话就返回True,否则返回False
注释:如果仅仅比较两个字符串是否相等,还是使用"=="比较简单
Console.WriteLine("请输入一个字符串");
string str1 = Console.ReadLine();
Console.WriteLine("请输入第二个字符串");
string str2 = Console.ReadLine();
// 不考虑大小写的比较
bool isEqual = str1.ToLower() == str2.ToLower();
1.4 字符串的合并和分割
合并Join方法:在指定 String 数组的每个元素之间串联指定的分隔符 String,从而产生单个串联的字符串。
方法原型
详细介绍:将数组strArr中的内容拼接成一个字符串,并在对应数组的每两项间添加分隔符str
string.Join(str,strArr);
(1) string string.Join(String,String[]);
Console.WriteLine(string.Join("迎", new string[] { "韩", "龙","我" }));
Console.WriteLine(string.Join("迎", new char[] { ‘韩‘, ‘龙‘, ‘我‘ }));
//输出结果是:韩迎龙迎我
(2) string string.Join(String,String[],Int32,Int32)
String[] val = { "apple", "orange", "grape", "pear" };
String sep = ",";
String result = String.Join(sep, val, 1, 2);
Console.WriteLine(result);
//输出结果是orange,grape
分割Split方法:返回的字符串数组包含此实例中的子字符串
方法原型
(1)string[] Split(Char[]) //返回的字符串数组包含此实例中的子字符串
string str = "I Have a Dream";
string[] divisionstr = str.Split(new char[] { ‘ ‘ });
foreach (string s in divisionstr)
{
Console.Write(s);
}
//输出结果是:IHaveDream,去掉了空格
(2)string[] Split(Char[],Int32) //返回的字符包含此实例中的子字符串,参数指定返回的子字符串的最大数量
string str = "I Have a Dream";
string[] divisionstr = str.Split(new char[] { ‘ ‘ }, 2);
foreach (string s in divisionstr)
{
Console.Write(s);
}
//输出结果:IHave a Dream ,int count将字符串截为几段的意思
(3)string[] Split(Char[],StringSplitOptions) //返回的字符串包含此实例中的子字符串,参数指定是否
返回空数组元素
string str = " 梅西| 卡 卡|小龙 ";
string[] divisionstr = str.Split(new char[] { ‘|‘,‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in divisionstr)
{
Console.Write(s);
}
//输出结果是:梅西卡卡小龙
(4)string[] Split(String[],StringSplitOptions) //返回的字符串包含此实例中的子字符串,参数指定是否
返回空数组元素
string str = "梅西|卡卡|小龙";
string[] divisionstr = str.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in divisionstr)
{
Console.Write(s);
}
//输出结果是:梅西卡卡小龙
(5)string[] Split(Char[],Int32,StringSplitOptions) //返回的字符串数组包含此字符串中的子字符串,参数
指定要返回子字符串的最大数量,以及是否要返回空数组元素。
string str = "梅西|卡卡|小龙";
string[] divisionstr = str.Split(new char[] { ‘|‘ }, 2, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in divisionstr)
{
Console.Write(s);
}
//输出结果是:梅西卡卡|小龙
(6)string[] Split(String[],Int32,StringSplitOptions) //返回的字符串数组包含此字符串中的子字符串,参数
指定要返回子字符串的最大数量,以及是否要返回空数组元素。
string str = "梅西|卡卡|小龙";
string[] divisionstr = str.Split(new string[] { "|" }, 2, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in divisionstr)
{
Console.Write(s);
}
//输出结果是:梅西卡卡|小龙
1.5 字符串的查找
Contains方法:返回一个值,该值指示指定的String对象是否出现在此字符串
方法原型
bool
Console.Write("请输入一个字符串:");
string str = Console.ReadLine();
if (str.Contains("abc"))
{
Console.WriteLine("字符串{0}包含{1}", str, "abc");
}
else
{
Console.WriteLine("字符串{0}不包含{1}", str, "abc");
}
IndexOf方法:String或一个或多个字符在此字符串中的第一个匹配项
方法原型
(1)int
string str = "让世界变得更美好";
int res = str.IndexOf("好");
Console.WriteLine(res);
//输出结果是:7
(2)int
string str = "让世界变得更美好";
int res = str.IndexOf("世界变得", 0);
Console.WriteLine(res);
//输出结果是:1
LastIndexOf方法:String或一个活多个字符在此字符串中的最后一个一个匹配项
方法原型
(1)int
string str = "让世界好得更美好";
int res = str.LastIndexOf("好");
Console.WriteLine(res);
//输出结果:7
(2)int
string str = "让世界好得更好美好";
int res = str.LastIndexOf("得", 4);
Console.WriteLine(res);
//输出结果是:4
IndexOpAny方法 指定字符数组中的任意字符在此实例中第一个匹配项的索引
方法原型
(1)int
string str = "地球很美好,我们很喜欢";
int res = str.IndexOfAny(new char[] { ‘s‘, ‘我‘ });
Console.WriteLine(res);
//输出结果:0
(2)int
搜索从指定字符位置开始
string str = "地球很美好,我们很喜欢";
int res = str.IndexOfAny(new char[] { ‘球‘, ‘我‘, ‘喜‘ }, 0);
Console.WriteLine(res);
//输出结果:1
(3)int
搜索从指定字符位置开始,并检查指定数量的字符位置。
string str = "地球很美好,我们很喜欢";
int res = str.IndexOfAny(new char[] { ‘球‘, ‘我‘, ‘喜‘ }, 2, 5);
Console.WriteLine(res);
//输出结果:6
LastIndexOpAny方法和LastIndexOf方法的使用基本相同
1.6 求子字符串
方法原型
(1)string
string str = "我爱中国";
string res = str.Substring(2);
Console.WriteLine(res);
输出结果:中国
(2)string
string str = "我爱中国,中华名族万岁";
string res = str.Substring(2, 5);
Console.WriteLine(res);
输出结果:中国,中华
总结:string
从字符串strName的startIndex位置开始提取长度为length的字符串,如果省略第二个参数则表示一直到最后
1.7 字符串的插入移除和替换
字符串的插入
方法原型
string
string str = "我中国";
string res = str.Insert(1, "爱");
Console.WriteLine(res);
输出结果:我爱中国
总结:在字符串
字符串的移除
方法原型
(1)string
string str = "我爱中国日本大和民族";
string res = str.Remove(4);
Console.WriteLine(res);
输出结果:我爱中国
(2)string
string str = "我爱中国日本&大和民族";
string res = str.Remove(4, 2);
Console.WriteLine(res);
输出结果:我爱中国&大和民族
总结:从字符串
一个新的字符串,如果省略第二个参数,将移除StartIndex后面的所有的字符串
字符串的替换
方法原型
(1)string
string str = "我爱中华&美国";
string res = str.Replace(‘&‘, ‘和‘);
Console.WriteLine(res);
输出结果:我爱中华和美国
(2)string
string str = "我爱中华&美国";
string res = str.Replace("美国", "天朝");
Console.WriteLine(res);
输出结果是:我爱中华&天朝
1.8 判断开始和结束
StartsWith开始
方法原型
bool
string str = "我爱中华";
bool istrue = str.StartsWith("我哎");
Console.WriteLine(istrue);
输出结果是:False
EndsWidth结束
方法原型
bool
string str = "我爱中华";
bool istrue = str.EndsWith("中国");
Console.WriteLine(istrue);
输出结果:False
1.9 字符串的赋值
Copy方法
方法原型
string String.Copy(string str); 创建一个与指定String具有相同值的String的新实例
string str = "韩迎龙";
string res = string.Copy(str);
Console.WriteLine(res);
输出结果是:韩迎龙
CopyTo方法
方法原型
string
//将指定数目的字符从此实例中的指定位置复制到字符数组中的指定位置
string dest = "Hello world";
string source = "Goodbye China";
char[] destArray = dest.ToCharArray();//将dest变成字符数组
source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放
dest = new string(destArray);//这时dest为"Hello China"
Console.WriteLine(dest);
输出结果是:Hello China
总结:字符串具有不可变性,对字符串的修改,实际上都是重新得到一个字符串,重新赋值
上一篇:Promise API 简介
下一篇:win7安装JDK6