string
- 不可变性:不管对字符串做什么操作,都会在内存中产生一块新的实例。
- 字符串常量的“驻留池”。
- 可以将一个字符串看作是char类型的只读数组。
- GC(Garbage Collection):每隔一段时间,会扫描整个内存,若发现有的空间没有被指向,则立即把它销毁。
string的常用方法和示例
isNullOrEmpty():判断此字符串是否为null或者为Empty。null没有分配空间,Empty是分配了空间
string s = "";
if (string.isnullorempty(s))
{
console.writeline("是");
}
else
{
console.writeline("不是");
}
//输出:是
Join():在字符串之间加入特定字符
string res1 = string.Join("|", "金1", "金2", "金3");
Console.WriteLine(res1);
//输出:金1|金2|金3
将字符串转为char数组
string str = "abcdefg";
char[] chs = str.ToCharArray();
foreach (char item in chs)
{
Console.WriteLine(item);
}
//输出:
//a
//b
//c
//d
//e
//f
//g
char数组转为字符串
chs[2] = 'z';
str = new string(chs);
Console.WriteLine(str);
//输出:abzdefg
转大写
string str = "abcDEE";
Console.WriteLine(str.ToUpper());
//输出:ABCDEE
转小写
Console.WriteLine(str.ToLower());
//输出:abcdee
== 比较的值, Equals 比较的是引用;
在string中均比较值
忽略大小写比较是否相等
string s1 = "aBc";
string s2 = "AbC";
if (s1.Equals(s2, StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("相等");
}
else
{
Console.WriteLine("不相等");
}
//输出:相等
找某个字符在字符串中的位置
string str = "abdsads";
int index0 = str.IndexOf("a");
int index1 = str.IndexOf("a", index0 + 1);
int index2 = str.LastIndexOf("a");
Console.WriteLine(index0);
//输出:0
Console.WriteLine(index1);
//输出:4
Console.WriteLine(index2);
//输出:4
从指定的位置开始往后面截取字符串
string str = "abcd,efg";
string strNew = str.Substring(1);
string strNew1 = str.Substring(1, 2);
Console.WriteLine(strNew);
//输出:bcd,efg
Console.WriteLine(strNew1);
//输出:bc
int index = str.IndexOf(",");
string strNew2 = str.Substring(index + 1);
Console.WriteLine(strNew2);
//输出:efg
部分字符剔除
string str = "a _b ,, c, MM";
string[] strNew = str.Split(new char[] { ' ', '_', ',' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string item in strNew)
{
Console.WriteLine(item);
}
//输出:
//a
//b
//c
//MM
字符串转char类型数组 ToCharArray();
字符串转string类型数组 Split();
去除空白字符 Trim() TrimEnd() TrimStart()
string s = " ,,_ 占 ,_, 山 _,, ";
//去除前面和后面,中间不去除
Console.WriteLine(s.Trim());
//输出:,,_ 占 ,_, 山 _,,
string[] names = { "金1", "金2", "金3" };
string res = string.Empty;
for (int i = 0; i < names.Length - 1; i++)
{
res += names[i] + "|";
}
Console.WriteLine(res + names[names.Length - 1]);
//输出:金1|金2|金3
判断contents中是否包含敏感词
Console.WriteLine("请输入你要回复的内容");
string contents = Console.ReadLine();
if (contents.Contains("0"))
{
contents = contents.Replace("0", "*");
}
Console.WriteLine(contents);
//输入:123001;输出:123**1