2023-04-26
自我提升
0

字符串

字符串的处理是编程⾥⾯的重要⽅⾯之⼀,因为很多数据都是字符串。
⽐如登录的时候邮箱 ⽤户名 密码 验证码等都是字符串。
字符串有字符组成,每个字符在底层是⼀个数字存储的。每个字符对应什么数字。

c#
string name = "Micheal"; name = "Micheal" + " 123"; name = "" + 45;// "45"

ASCII码 https://baike.baidu.com/item/ASCII/309296?fr=aladdin
字符串是⼀串字符,在程序中,⼀个字符串可以当做⼀个字符数组。

c#
string name = "Micheal"; name = "Micheal" + " 123"; name = "" + 45;// "45" Console.Write(name.Length); // str.length取得字符⻓度 Console.Write(name[3]); for(int i = 0; i < name.Length; i++) { Console.WriteLine(name[i]); //str[i]访问某个字符元素 }

✋编程题
如果倒序遍历⼀个字符串中的每⼀个字符。

c#
for(int i = name.Length - 1; i >= 0; i--) { Console.WriteLine(name[i]); }

关于字符串操作的常⽤⽅法:
1、ToLower() ToUpper()
2、Trim() TrimStart() TrimEnd()
3、Split()

c#
string name = "xiaoming,zhangsan,xiaohong"; name.methodName(); string str2 = name.ToLower(); Console.WriteLine(name + "-" + str2); //字母大写变小写 string str3 = name.ToUpper(); Console.WriteLine(name + "-" + str3); //字母小写变大写 string str4 = name.Trim(); Console.WriteLine(name + "-" + str4); //去除字符串中间空格 string str5 = name.TrimStart(); Console.WriteLine(name + "-" + str5 + "|"); //去除字符串首部空格 string str6 = name.TrimEnd(); Console.WriteLine(name + "-" + str6 + "|"); //去除字符串尾部空格 string[] strArray = name.Split(","); //分割 foreach(string str in strArray) { Console.WriteLine(str); }

✋编程题
3个可乐瓶可以换⼀瓶可乐,现在有364瓶可乐,问⼀共可以喝多少瓶可乐,剩下⼏个空瓶。

c#
int pingNumber = 364; int heNumber = 364; while (pingNumber > 2) { heNumber += pingNumber / 3; pingNumber=(pingNumber / 3) + (pingNumber % 3); } Console.Write("一共可以喝" + heNumber + ",剩下" + pingNumber);

✋编程题
编写⼀个应⽤程序⽤来输⼊的字符串进⾏加密,对于字⺟字符串加密规则如下:
‘a’→’d’ ‘b’→’e’ ‘w’→’z’ …… ‘x’→’a’ ‘y’→’b’ ‘z’→’c’‘A’→’D’ ‘B’→’E’ ‘W’→’Z’ …… ‘X’→’A’ ‘Y’→’B’‘Z’→’C’?对于其他字符,不进⾏加密。

c#
String str = Console.ReadLine(); char[] strArray = str.ToCharArray(); for(int i = 0; i < strArray.Length; i++) { if( (strArray[i]>='a' &&strArray[i]<='z')||(strArray[i] >= 'A' && strArray[i] <= 'Z')) { strArray[i] = (char)(strArray[i] + 3);// 'a'+3 97+3 = 100 = 'd' if(strArray[i]>'z'&& strArray[i]< 'z' + 4)//xyz { strArray[i] = (char)(strArray[i] - 26); } if (strArray[i] > 'Z' && strArray[i] < 'Z' + 4)//XYZ { strArray[i] = (char)(strArray[i] - 26); } } } foreach(char temp in strArray) { Console.Write(temp); }

✋编程题
编写⼀个控制台程序,要求⽤户输⼊⼀组数字⽤空格间隔,对⽤户输⼊的数字从⼩到⼤输出。 (Array.Sort⽅法和冒泡排序)
排序演⽰⽹站:https://visualgo.net/en/sorting?slide=1

c#
string str = Console.ReadLine(); string[] strArray = str.Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < strArray.Length; i++) { int number = Convert.ToInt32(strArray[i]); intArray[i] = number; } //得到一个有序的数组 Array.Sort(intArray); foreach(int temp in intArray) { Console.Write(temp + " "); } 拓展: string str = Console.ReadLine(); string[] strArray = str.Split(" "); int[] intArray = new int[strArray.Length]; for (int i = 0; i < strArray.Length; i++) { int number = Convert.ToInt32(strArray[i]); intArray[i] = number; } //得到一个有序的数组 //19-19-18 for(int j = 0; j < intArray.Length - 1; j++)//进行length-1轮比较 { //进行比较 j=0 length-1 j=1 length-1-1 j=2 length-1-2 bool isChange = false;//需要一个变量标志,记录当前轮次比较是否有发生交换 for(int i = 0; i < intArray.Length - 1-j; i++) { if (intArray[i] > intArray[i + 1]) //如果左边大于右边 ,就交换 { int temp = intArray[i]; intArray[i] = intArray[i + 1]; intArray[i + 1] = temp; isChange = true; } } if (isChange == false) { break; } } foreach (int temp in intArray) { Console.Write(temp + " "); }