084-字符串-字符数组
//字符串回顾
Console.WriteLine("Hello World");
string name = "mike";//字符串的声明
name = "mike" + "123";//字符串的组拼
name = "" + 45;//字符串和数字组拼的时候,数字就会被转化成字符串
Console.WriteLine(name);//输出的结果是字符串"45"
取得字符串的长度和取得特定字符的方法
//取得字符串的长度
Console.WriteLine(name.Length);
//可以使用数组的方法取得字符数组里的特定字符
Console.WriteLine(name[2]);
可以用for循环遍历一个字符串所有的字符
//字符数组遍历
for(int i = 0; i < name.Length; i++)
{
Console.Write(name[i]+" ");
}
如果倒序遍历⼀个字符串中的每⼀个字符。
//字符串的倒序遍历
for(int i = name.Length - 1; i >= 0; i--)//注意字符串的最大索引是长度-1
{
Console.Write(name[i] + " ");
}
字符串方法的调用
//字符串方法调用
//name.methodName();
string name = "mike";
关于字符串操作的常⽤⽅法:
这些字符串的操作方法都不会对原字符串产生影响,我们会定义一个新的字符串去接受
1、ToLower() ToUpper()
string name = "Mike";
string str2=name.ToLower();//转换小写
Console.Write(name + "-" + str2);
string str3 = name.ToUpper();//转换大写
Console.Write(name + "-" + str3);
2、Trim() TrimStart() TrimEnd()
string name = " Mike Liang ";
string str4 = name.Trim();//用来去除字符串前后的空格
Console.Write(name + "-" + str4);// Mike Liang -Mike Liang
string str5 = name.TrimStart();//用于去除前面的空格
Console.Write(name + "-" + str5);
string str6 = name.TrimEnd();//用于去除后面的空格
Console.Write(name + "-" + str6);
3、Split()
string name = " xiaoming,zhangsan,xiaohong ";
string[] strArray = name.Split(",");//让字符串通过逗号分割
foreach(string str in strArray)
{
Console.Write(str);
}
087-编程题-可乐和字符串加密
3个可乐瓶可以换⼀瓶可乐,现在有364瓶可乐,问⼀共可以喝多少瓶可乐,剩下⼏个空瓶
//需要两个变量,瓶子的个数,喝了多少可乐
int pingNumber = 364;
int heNumber = 264;
while (pingNumber > 2)
{
heNumber += pingNumber / 3;
pingNumber=(pingNumber / 3) + (pingNumber % 3);
}
Console.WriteLine("一共可以喝" + heNumber + "剩下的瓶子数量" + pingNumber);
编写⼀个应⽤程序⽤来输⼊的字符串进⾏加密,对于字⺟字符串加密规则如下:
‘a’→’d’ ‘b’→’e’ ‘w’→’z’ …… ‘x’→’a’ ‘y’→’b’ ‘z’→’c’‘A’→’D’ ‘B’→’E’ ‘W’→’Z’ …… ‘X’→’A’ ‘Y’→’B’Unity 1142 C#编程-第⼀季-编程基础-宇宙最简单2021最新版
54
‘Z’→’C’?对于其他字符,不进⾏加密
string str = Console.ReadLine();
char[] strArray = str.ToCharArray();
for(int i = 0; i < str.Length; i++)
{
if ((strArray[i] >= 'a'&&strArray[i]<='z')||(strArray[i] >= 'A' && strArray[i] <= 'Z'))//满足这两个条件说明是一个小写字母或者是大写字母
{
strArray[i] = (char)(strArray[i] + 3);//需要强行转换
if (strArray[i] > 'z' && strArray[i] < 'z' + 3)
{
strArray[i] = (char)(strArray[i] - 26);
}
if (strArray[i] > 'Z' && strArray[i] < 'Z' + 3)
{
strArray[i] = (char)(strArray[i] - 26);
}
}
}
foreach(char temp in strArray)
{
Console.Write(temp);
}
取得最小值
输⼊n(n<100)个数,找出其中最⼩的数,将它与最前⾯的数交换后输出这些数。
//23 23 56 11 22 33 2
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;
}
int min = intArray[0];
int minIndex = 0;
for(int i = 1; i < intArray.Length; i++)
{
if (intArray[i] < min)
{
min = intArray[i];
minIndex = i;
}
}
int temp = intArray[0];
intArray[0] = intArray[minIndex];
intArray[minIndex] = temp;
foreach(int i in intArray)
{
Console.Write(temp + " ");
}
089-编程题-插入
编写⼀个控制台程序,要求⽤户输⼊⼀组数字⽤空格间隔,对⽤户输⼊的数字从⼩到⼤输出。
(Array.Sort⽅法和冒泡排序)
排序演⽰⽹站:https://visualgo.net/en/sorting?slide=1
有n(n<=100)个整数,已经按照从⼩到⼤顺序排列好,现在另外给⼀个整数x,请将该数插⼊到
序列中,并使新的序列仍然有序。
输出新的序列
//得到一个有序的数组
string str = Console.ReadLine();
string[] strArray = str.Split(' ');
int[] intArray = new int[strArray.Length];
for(int i = 10; i < strArray.Length; i++)
{
int number = Convert.ToInt32(strArray[i]);
intArray[i] = number;
}
int x = Convert.ToInt32(Console.ReadLine());
int m = intArray.Length-1;
//bool find = false;//是否找到满足条件的索引位置,这个索引的位置满足条件m<=x<=m+1
for(int i = 0; i < intArray.Length-1; i++)
{
if (x >= intArray[i] && x <= intArray[i + 1])
{
m = i;
//find = true;
break;
}
}
//if (find = true)
//{
// m = intArray.Length - 1;
//}
int[] intArrayNew = new int[intArray.Length + 1];
//0-m
for(int i = 0; i < m + 1; i++)
{
intArrayNew[i] = intArray[i];
}
intArrayNew[m + 1] = x;
for(int i = m + 1; i < intArray.Length; i++)
{
intArrayNew[i] = intArray[i];
}
foreach(int temp in intArrayNew)
{
Console.Write(temp + " ");
}
092-编程题-判断合法标识符
输⼊⼀个字符串,判断其是否是C#的合法标识符。
{
string str = Console.ReadLine();
//要判断 数字 字母 _
//数字开头
bool isRight = true;
for(int i = 0; i < str.Length; i++)
{
if((str[i]<'0'|| str[i] > '9') && (str[i] < 'a' || str[i] > 'z') && (str[i] < 'A' || str[i] > 'Z') && (str[i]!='_'))
{
isRight = false;
break;
}
}
if(str[0] >= '0' &&str[0] <= '9')
{
isRight = false;
}
if (isRight)
{
Console.WriteLine("是合法标志符");
}
else
{
Console.WriteLine("不是合法标志符");
}
}
“回⽂串”是⼀个正读和反读都⼀样的字符串,⽐如“level”或者“noon”等等就是回⽂串。请写⼀个
程序判断读⼊的字符串是否是“回⽂”。
string str = Console.ReadLine();
//8 8/2=4 0-3
//7 7/2=3 0-2
//7
//0-6 1-5 2-4 相加的和都是6 i~length-1-i
bool isHui = true;
for(int i = 0; i < str.Length / 2; i++)
{
//比较i是否等于length-1-i是否相等
if (str[i] != str[str.Length - 1 - i])
{
isHui = false;
break;
}
if (isHui)
{
Console.WriteLine("是回文串");
}
else
{
Console.WriteLine("不是回文串");
}
最近夏⽇炎热,令张三⾮常的不爽。最近张三开始研究天⽓的变化。
历经千⾟万苦,他收集了连续N(1<N<1000000)天的最⾼⽓温数据。
现在他想知道⽓温⼀直上升的最⻓连续天数。
样例输⼊:
1 3 5 2 3 5 7 8 6 9
样例输出
5