字符串、整数倒序输出
场景1:输入一个正整数,倒序输出结果,例如原数字为123456,最终输出结果为654321;
以下两种方式原理大致相同,但都有一个缺陷,如果数字首部或者尾部是0,输出的结果会忽略0,例如输入的是01或者10,得到的结果都是1。
方式一
/// <summary> /// 正整数-倒序输出 /// </summary> public static void ReverseOutputByInt() { Console.WriteLine("请输入想要倒序输出的正整数"); string str = Console.ReadLine(); int i = 0; string result=""; int.TryParse(str, out i); do { if(i <= 0) { Console.WriteLine("输入的内容不符合规范,请重新输入"); str = Console.ReadLine(); int.TryParse(str, out i); } } while (i <= 0); Console.WriteLine($"你输入的数字为:{i}"); while(i > 0) { //取模运算符,取出最后一位数字 result += i % 10; Console.WriteLine($"%10得到的余数为:{i % 10}"); //当前的整数/10,得到一个去掉当前整数最后一位数字的新整数 i = i / 10; Console.WriteLine($"/10得到的数字为:{i}"); } Console.WriteLine($"倒序后得到的结果为:{Convert.ToInt32(result)}"); Console.ReadKey(); }
方式二
public static long reverse(long y) { long x = 0; while (y > 0) { x = x * 10 + y % 10; y = y / 10; //每次循环去尾部元素 } return x; } Console.WriteLine("请输入回文数"); string huiwenshu = Console.ReadLine(); long InputNum = 0; long.TryParse(huiwenshu, out InputNum); long reverseNumber = reverse(InputNum); Console.WriteLine($"反转后得到的数为:{reverseNumber}");
场景2:输入一个字符串,倒序输出结果,例如原字符串为“我爱你,中国”,最终输出结果为“国中,你爱我”;
/// <summary> /// 字符串-倒序输出 /// </summary> public static void ReverseOutputByString() { Console.WriteLine("请输入想要倒序输出的字符串"); string str = Console.ReadLine(); do { if (String.IsNullOrWhiteSpace(str)) { Console.WriteLine("输入内容不能为空,请重新输入"); str = Console.ReadLine(); } } while (String.IsNullOrWhiteSpace(str)); //字符串转为char类型数组 char[] charArray = str.ToCharArray(); //倒序 Array.Reverse(charArray,0,charArray.Length); //获取倒序后的新字符串 string newStr = new string(charArray); Console.WriteLine($"倒序后得到的结果为:{newStr}"); Console.ReadKey(); }
人生如逆旅
我亦是行人

浙公网安备 33010602011771号