C# 06/18/2020

学习C#的第三天

1.字符串比较

	- string.Equals(str1, str2) 返回 布尔值(boolean)
	- string.Compare(str1, str2) 
			小于 0, str1 < str2
			等于 0, str1 = str2
			大于 0,str1 > str2
	- string.Compare(str1, str2, true)
	布尔值为true时, 忽略大小写
	- str1.CompareTo(str2)
  1. 字符串格式化
    -string.Format()
    在这里插入图片描述
    3.字符串的截取

     - str1.Substring(n) 截取前n个字符,保留剩余的
     - str.Substring(n, m) 保留从第n个长度开始的m个的字符串
    
            Console.WriteLine("请输入一个单词,不区分大小写");
            string str = Console.ReadLine();
            string newstr = str.Substring(0, 1).ToUpper() + str.Substring(1).ToLower();
            Console.WriteLine(newstr); ;
            Console.ReadKey();

4.字符串的分割

	- str1.Split(字符或字符数组)
			//单个字符
			string str = "51zxw-C#-Walker";
			string[] newstr = str.Split('-');
            Console.WriteLine("分割后的字符串为:");
            foreach (string s in newstr)  Console.Write(s + "\t");


			//字符数组
  			string str = "51zxw-C#-Walker=6.7字符串的分割";
            Console.WriteLine("原字符串为:\n" + str);
            Console.WriteLine("用 - 和 = 分割后的字符串为:");
            string[] newstr = str.Split(new char[] {'-', '='});
            foreach (string s in newstr) Console.Write(s + "\t");

            Console.ReadKey();
		输出 51zxw   C#      Walker
		输出 51zxw   C#      Walker  6.7字符串的分割
  1. 字符串的合并

     	- 第一种方法 莽
    
  			string str1 = "51zxw"; 
            string str2 = "C#";
            string str3 = "Walker";
            string newstr = str1 + str2 + str3;
            Console.WriteLine(newstr);
	- 第二种  string.Concat()
 			string newstr2 = string.Concat(str1 + str2 + str3);
            Console.WriteLine(newstr2);
	- 第三种  string.Join("", 字符数组)   
		-	需要数组
		-	可以选择连接符 
			string[] s = {"51zxw", "C#", "Walker" };
            string newstr3 = string.Join("-", s);
            Console.WriteLine(newstr3);
            Console.ReadKey();
	第三种运行结果	51zxw-C#-Walker

6.字符串的插入与填充

-	插入	 str1.Insert(插入位置, 插入子串);
			//字符串填充
            string str = "www.51zx.net";
            string insertStr = str.Insert(8, "w");
            Console.WriteLine(insertStr);
-	填充
		- 右填充, 字符串末尾填充
			- str1.PadRight(总长度);//填充空格
			- str1.PadRight(总长度,要填充的字符)
		- 左填充, 字符串开头填充
			- str1.PadLeft(总长度);
			- str1.PadLeft(总长度,要填充的字符)
        	//PadRight
            string padStr = "abc";
            string padStr2 = "abcd";
            string padStr3 = "efghi";
            string newstr = padStr.PadRight(6, '/') + "\n" + padStr2.PadRight(6, '/') + "\n" + padStr3.PadRight(6, '/');
            Console.WriteLine(newstr);
            //PadLeft 同上
  1. 字符串的删除

     - str1.Remove(开始位置);
    
   			string str = "www.51zxw.net//132//54";
            string newstr = str.Remove(13);
            Console.WriteLine(newstr);
	- str.Remove(开始位置, 位移数);
			string str2 = "www.51zxw.com.net";
            string newstr2 = str2.Remove(9, 4);
            Console.WriteLine(newstr2);
  1. 字符串修剪

     - 删除字符串首部 和 尾部 的空格
     	- str1.Trim(); 
    
  			string username = "   Walker    ";
            Console.WriteLine("原字符串为:" + username + "|");
            Console.WriteLine("修剪后的为:" + username.Trim() + "|");
	- 只删除字符串首部的空格
		- str1.TrimStart();
			Console.WriteLine("修剪后的为:" + username.TrimStart() + "|");
	- 只删除字符串尾部的空格 
		- str1.TrimEnd(); 
		   Console.WriteLine("修剪后的为:" + username.TrimEnd() + "|");
原字符串为:   Walker    |
修剪后的为:Walker|
修剪后的为:Walker    |
修剪后的为:   Walker|

	- 删除其他字符 
    		 string web = "#%%%%%####www.51zxw.net%%%%###%##%#%#%";
            Console.WriteLine( web.Trim('#', '%'));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,async/await是一种用于处理异步操作的关键字组合。它可以使代码更加简洁和易于理解,同时也提供了更好的性能和可维护性。 下面是一些C# async/await的复杂运用场景: 1. 并行执行多个异步任务:使用Task.WhenAll方法可以并行执行多个异步任务,并等待它们全部完成。例如: ```csharp public async Task DoMultipleTasksAsync() { Task task1 = Task.Run(() => DoTask1()); Task task2 = Task.Run(() => DoTask2()); Task task3 = Task.Run(() => DoTask3()); await Task.WhenAll(task1, task2, task3); } ``` 2. 异步任务的超时处理:使用Task.Delay和CancellationToken实现异步任务的超时处理。例如: ```csharp public async Task DoTaskWithTimeoutAsync() { var cts = new CancellationTokenSource(); cts.CancelAfter(TimeSpan.FromSeconds(5)); try { await Task.Delay(TimeSpan.FromSeconds(10), cts.Token); // 执行异步任务 } catch (OperationCanceledException) { // 超时处理逻辑 } } ``` 3. 异步任务的重试机制:使用循环和延迟重试策略来实现异步任务的重试。例如: ```csharp public async Task DoTaskWithRetryAsync() { int maxRetries = 3; int retryDelaySeconds = 5; for (int retryCount = 0; retryCount < maxRetries; retryCount++) { try { // 执行异步任务 await DoTaskAsync(); return; } catch (Exception) { // 异常处理逻辑 } await Task.Delay(TimeSpan.FromSeconds(retryDelaySeconds)); } // 重试次数超过限制的处理逻辑 } ``` 这些是C# async/await的一些复杂运用场景,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值