字符串
字符串的处理是编程⾥⾯的重要⽅⾯之⼀,因为很多数据都是字符串。
⽐如登录的时候邮箱 ⽤户名 密码 验证码等都是字符串。
字符串有字符组成,每个字符在底层是⼀个数字存储的。每个字符对应什么数字。
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 + " ");
}
本文作者:千纸鹤
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!