2023/10/30——C#——不可变字符串、字符串 API、StringBuilder 类的使用、格式化字符串、模板 字符串...

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)}");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值