1.创建和添加数组
Array intArray = Array.CreateInstance(typeof(int), 5);
for (int i = 0; i < intArray.Length; i++)
{
intArray.SetValue(i + 1, i);
}
根据 IndexOf 对数组内的元素进行判断:
如果有这个元素,就显示该元素的索引位置;如果没有这个元素,就返回-1;
Console.WriteLine(Array.IndexOf(intArray, 1)); // 0
Console.WriteLine(Array.IndexOf(intArray, 0, intArray.Length)); // -1
2.不可变字符串
含义: string 引用类型,string类型表示零或更多 Unicode 字符组成的序列,
string 是 .NET Framework 中 String 的别名。
不可变字符串 内存是不可变化的
string str = "123";
str = "666"; // 没有覆盖,但是指针指向发生了变化,123没人用了
举例对比:城管 收狗 狗必须牵绳子,否则会被认定为无主,直接收走
字符串拼接:
string str1 = "456";
Console.WriteLine(str + str1);
创建字符串的方法:
方式1 字面量创建字符串
string str3 = "abc";
string str4 = @"abc";
Console.WriteLine(str3 + str4);
方式2 通过单字符数组 创建字符串
char[] charArray = new char[5] { 'a', 'b', 'c', 'd', 'f' };
string str5 = new string(charArray);
Console.WriteLine(str5);
方式3 格式化 字符串
Format
string str6 = string.Format("123", "a");
Console.WriteLine(str6);
// 字符串 本质也是 单字符的集合
//不可变字符串 本质也是 不可变的单字符的集合
两种遍历方法:
string str7 = "abcdgbhj123";
// 遍历字符串
foreach (char c in str7)
{
Console.WriteLine(c);
}
for (int i = 0; i < str7.Length; i++)
{
Console.WriteLine(str7[i]);
}
修改
// 不可变字符串 长度、元素的类型 不可变 内容可变 例:
char[] charArray1 = new char[2] { '1', '2' };
charArray1[0] = 'a';
3.常用 字符串 API
1.Length 获取字符串的长度,即字符串中字符的个数.
2.IndexOf 返回整数,得到指定的字符串在原字符串中第一次出现的位置.
int indexCharNumber = str7.IndexOf('a');
Console.WriteLine(indexCharNumber);
tips:学会查 小扳手 属性 小方块 方法
3.LastlndexOf 返回整数,得到指定的字符串在原字符串中最后一次出现的位置.
4. StartsWith 返回布尔型的值,判断某个字符串是否以指定的字符串开头.
5. EndsWith 返回布尔型的值,判断某个字符串是否以指定的字符串结尾.
6. ToLower 返回一个新的字符串,将字符串中的大写字母转换成小写字母.
string str8 = "ABC";
string toLowerStr = str8.ToLower();
Console.WriteLine(toLowerStr); // abc
7. ToUpper 返回一个新的字符串,将字符串中的小写字母转换成大写字母.
8. Trim返回一个新的字符串,不带任何参数时表示将原字符串中前后的空格删除.
//Trim 去除 两侧空格;前缀和后缀;
string str9 = " admin root";
string TrimStr = str9.Trim();
Console.WriteLine(TrimStr); //admin root 去不了中间的空格
9. Remove 返回一个新的字符串,将字符串中指定位置的字符串移除.
// Remove 删掉 索引值 0 删四个 4(截取长度);
string removeStr = str9.Remove(0, 4);
Console.WriteLine(removeStr);
10. TrimStart 返回一个新的字符串,将字符串中左侧的空格删除.
11. TrimEnd 返回一个新的字符串,将字符串中右侧的空格删除。
12. PadLeft 返回一个新的字符串,从字符串的左侧填充空格达到指定的
字符串长度.
13. PadRight 返回一个新的字符串,从字符串的右侧填充空格达到指定的
字符串长度.
14. Substring 返回一个新的字符串,用于截取指定的字符串.
//Substring 从索引值 为2 的位置 开始截取,后面所有
string subStr = str9.Substring(2);
//留下来 0-4
string subStr1 = str9.Substring(0, 4);
Console.WriteLine(subStr);
Console.WriteLine(subStr1);
15. Insert 返回一个新的字符串,将一个字符串插入到另一个字符串中指定索引的位置.
// Insert 插入位置 索引值 4 添加ZZZ
string insertStr = str9.Insert(4, "zzz");
Console.WriteLine(insertStr);
16.concat
// 只能直接 cw输出 Concat
Console.WriteLine(str9.Concat("abc"));
//System.Linq.Enumerable+<ConcatIterator>d__59`1[System.Char]
//拼接了两个
string ConcatStr = string.Concat("aaa", "ccb");
Console.WriteLine(ConcatStr); // aaaccb
17.contains
// Contains 包含 适合登录注册 进行判定 bool 类型
bool ContainsStr = str9.Contains("abc");
Console.WriteLine(ContainsStr);
18.IsNullOrEmpty
// 判断 null 还是空字符串
string.IsNullOrEmpty(str9);
if (str9 == null || str9 == "")
{
Console.WriteLine("字符串不合法!");
}
if (str9 == null || str9 == "" || string.IsNullOrEmpty(str9))
{
Console.WriteLine("字符串不合法!");
}
19. char[] charArray = str.ToCharArray();
//ToCharArray 下面是原理展示
string str10 = "abc,def";
//char[] charArray1 = str10.ToCharArray();
char[] charArray2 = new char[str10.Length];
for (int i = 0; i < str10.Length; i++)
{
charArray2[i] = str10[i];
}
20.str1.Split(',')
//Split 根据 , 对字符串进行 切割 *** 常用 查询字符串
string[] stringArray = str10.Split(',');
foreach (var item in stringArray)
{
Console.WriteLine(item);
}
// abc
// def
//网址举例:
string str11 = @"https://mbd.baidu.com";
string[] baiduStr = str11.Split('.');
foreach (var item in baiduStr)
{
Console.WriteLine(item);
}
Console.WriteLine(baiduStr[1]);
4.StringBuilder 类的使用
特点:
1.可以定义可变字符串,实现字符串的添加
2.对于高频率字符串拼接可以使用
3.如果普通拼接可以使用字符串格式化方式
常用方法如下:
Append末尾追加
Insert在指定位置插入指定字符串
Remove移除指定字符串
tips:双引号只代表 :不可变字符串 拼接
string str12 = "123";
string str13 = "456";
string str14 = "";
Console.WriteLine(str12 + str13 + str14); //123456
//对 StringBuilder 进行初始化 操作:
StringBuilder stringBuilder = new StringBuilder();
// 相当于 “” + “123”
stringBuilder.Append(str12);
// 相当于 “” + “456”
stringBuilder.Append(str13);
Console.WriteLine(stringBuilder); // 123456
StringBuilder 里的Insert 用法:
stringBuilder.Insert(0, str12, 2); // 2 追加两遍
Console.WriteLine(stringBuilder); // 1231 23123456
StringBuilder 里的 Remove 用法:
stringBuilder.Remove(0, 4);
Console.WriteLine(stringBuilder); // 23123456
StringBuilder 里的 Clear 用法:
stringBuilder.Clear();
Console.WriteLine(stringBuilder); // 空的
...
5.格式化字符串
int a = 321;
string name = "锵锵!可莉登场...";
Console.WriteLine("{0}!开幕啦{1}", name, a); //锵锵!可莉登场...!开幕啦321
// 用{ } 来表示,在{ }内填写占位符 { }配合相应的数字
Console.WriteLine("当前输出的值为{0}", a); // 当前输出的值为321
//格式化 字符串
string newStr = string.Format("当前输出的值为{0}", a);
Console.WriteLine(newStr); // 当前输出的值为321
另外的一些写法:
// 格式
int j = 12345;
string formatStr = string.Format("{0}", j);
Console.WriteLine(formatStr); // 12345
string formatStr1 = string.Format("{0:C}", j);
Console.WriteLine(formatStr1); //¥12,345.00
//也可以 直接写在 cw 里
Console.WriteLine("{0:C}", j); //¥12,345.00
Console.WriteLine("{0:D}", j); //12345
Console.WriteLine("{0:E}", j); //1.234500E+004
Console.WriteLine("{0:F}", j); //12345.00
Console.WriteLine("{0:G}", j); //12345
Console.WriteLine("{0:N}", j); //12,345.00
Console.WriteLine(DateTime.Now); // 2023/10/30 16:40:51 object
//格式化字符串
Console.WriteLine("{0}", DateTime.Now); // 2023/10/30 16:40:51 string
Console.WriteLine("{0:D}", DateTime.Now); // 2023年10月30日
Console.WriteLine("{0:y}", DateTime.Now); // 2023年10月
6.模板字符串
string name1 = "可乐";
int age1 = 22;
Console.WriteLine($"{name1}今年已经{age1}岁了!");
不熟悉的话 可以借鉴前端里的 js 模板字符串!
int a = 10;
int b = 2;
// 模板字符串 $"{变量1},{变量2}"
Console.WriteLine($"当前输出的值为{a}");
Console.WriteLine($"当前输出的值为{a},当前输出的值为{b}");
Console.WriteLine($"当前输出的值为{a + b},当前输出的值为{b - a}");
Console.WriteLine($"当前输出的值为{a > b},当前输出的值为{b == a}");
Console.WriteLine($"当前输出的值为{(a > b ? a : b)}");
Console.WriteLine($"当前输出的值为{Sum(10,20)}");