字符串反转····
一、系统自带的字符串反转的方法:
static void Main(string[] args)
{
String str =Console.ReadLine();
char[] arry = str.ToCharArray();
Array.Reverse(arry);
Console.WriteLine(arry);
Console.ReadKey();
}
二、下面我们就用把字符串拆分成字符数组,然后用遍历,来对数组进行反转的实现。
1 namespace ConsoleApplication1
2 {
3 class Program
4 {
5 static void Main(string[] args)
6 {
7 String str =Console.ReadLine();
8 char[] oldchar = str.ToCharArray();//原来的字符串转换成字符数组
9
10 int l = str.Length;//计算长度,为循环做准备。
11 char[] newchar=new char[l];//创建一个相同长度的数组用来存储翻转后的新数组。
12
13 for (int i = 0; i < l; i++)
14 {
15 newchar[i] = oldchar[l - i - 1];//将oldchar[]数组的最后一个给newchar[]数组的第一个,这样就反转了
16
17
18 }
19 Console.Write(new string(newchar));//重新调用构造函数进行实例化一个新的反转后的字符串。
20 Console.ReadKey();
21
22
23
24
25
26 }
27
28
29
30 }
三、1/2
方法三其实就是方法二的一个延伸,比如字符串:a b c d ,我们可以首尾依次对调,d b c a(一次),d c b a(两次)。所以可以看出,其实可以循环次数知识长度的一半就可以了!!其中首位依次对调,这个就是我们平常常见的两个值怎样换值的问题,找个中间人呗。
1 static void Main(string[] args)
2 {
3 String str =Console.ReadLine();
4 char[] oldchar = str.ToCharArray();//原来的字符串转换成字符数组
5
6 int l = str.Length;//计算长度,为循环做准备。
7
8
9 for (int i = 0; i < l/2; i++)
10 {
11 char middle;//创建个中间人
12 middle=oldchar[i];//前端值给中间人
13 oldchar[i] = oldchar[l - i - 1];//对应的后端值,覆盖前端值
14 oldchar[l - i - 1] = middle;//中间人,把前端值,给对应的后端值
15
16
17
18
19 }
20 Console.Write(new string(oldchar));//数组重组为一个字符串。
21 Console.ReadKey();
22 }
四、运用StringBuilder,提供的方法较为简单.
1 class Program
2 {
3 static void Main(string[] args)
4 {
5
6 string old = Console.ReadLine();
7 StringBuilder stb = new StringBuilder(old.Length);
8
9 for (int i=old.Length ; i>0; i--)
10 {
11 stb.Append(old[i-1]);
12
13
14
15 }
16 Console.Write(stb.ToString());//数组重组为一个字符串。
17 Console.ReadKey();
18
19 }
五、实用栈的方法。栈是根据先进后出的方式处理数据。可以用栈些计算器这样的小程序,下面我们就用栈来进行字符串的反转。
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Stack<char> sta=new Stack<char>();//定义数组来存储拆分的字符串 6 string str=Console.ReadLine(); 7 int l = str.Length; 8 for (int i = 0; i < l; i++) 9 { 10 sta.Push(str[i]);//压入栈中 11 12 } 13 char[] c = new char[l]; 14 for (int i = 0; i < l; i++) 15 { 16 17 c[i] = sta.Pop();//出栈 18 } 19 Console.WriteLine(new string(c)); 20 Console.ReadLine(); 21 22 } 23 24 25 26 }
这个的思想很重要,虽然用来两次循环,上面那次循环完全可以用foreach遍历。栈是个线性数据结构,有后进后进先出的特点。先进的压入栈底,后进的压入栈顶,出栈时候就从栈顶开始移出。
好吧···其实还有很多方法的···就写到这···希望大家多多指正···
更多精彩原创心得,请关注微信公众号: 梯形

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?