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