Files
Csharp/C#核心/Lesson23_面向对象相关-String练习/Program.cs
T
2025-09-17 11:21:19 +08:00

73 lines
2.5 KiB
C#

namespace Lesson23_面向对象相关_String练习
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("string练习题");
#region 练习题一
//请写出string中提供的截取和替换对应的函数名
string str = "123";
str = str.Substring(1);
str = str.Substring(1, 1);
str = "123123";
str = str.Replace("123", "哈哈哈");
#endregion
#region 练习题二
string str1 = "1|2|3|4|5|6|7";
string[] strs = str1.Split('|');
str1 = "";
for (int i = 0; i < strs.Length; i++)
{
str1 += int.Parse(strs[i]) + 1;
if(i < strs.Length - 1)
{
str1 += "|";
}
}
Console.WriteLine(str1);
#endregion
#region 练习题四
string strr = null;//开了栈内存1,没开堆内存0
strr = "123";//堆内存+1
string str2 = strr;//栈内存+1
str2 = "321";//堆内存+1
str2 += "123";//堆内存+1
// 请问,上面这段代码,分配了多少个新的堆空间
//3个
#endregion
#region 练习题五
//编写一个函数,将输入的字符串反转。不要使用中间商,你必须原地修改输入数组。交换过程中不使用额外空间
//比如:输入{'h','e','l','l','o'}
//输出 {'o','l','l','e','h'}
Console.WriteLine("请输入内容");
string str3 = Console.ReadLine();
char[] chars = str3.ToCharArray();
for (int i = 0; i < chars.Length / 2; i++)
{
//交换
//char temp = chars[i];
//chars[i] = chars[chars.Length - 1 - i];
//chars[chars.Length - 1 - i] = temp;
chars[i] = (char)(chars[i] + chars[chars.Length - 1 - i]);
chars[chars.Length - 1 - i] = (char)(chars[i] - chars[chars.Length - 1 - i]);
chars[i] = (char)(chars[i] - chars[chars.Length - 1 - i]);
}
for (int i = 0; i < chars.Length; i++)
{
Console.Write(chars[i]);
}
str3 = new string(chars);
Console.WriteLine(str3);
#endregion
}
}
}