与人【分享】自己的成果,【求教】更为简洁的代码:大侠们求助!!
一、题目编一个程序,定义一个字符串变量s,输入一个字符串,然后把字符串倒置,再输出字符串变量s。
我自己给自己定了两个要求:1、字符串按倒序输出(题目本意);2、字符串按单词倒序输出(提升)。
二、代码
static void Main()
{
Console.WriteLine("请输入字符串:");
string str = Console.ReadLine();
char[] chr = str.ToCharArray();
int m = chr.Length;
Console.WriteLine("m={0}",m);
Console.WriteLine("倒置输出的结果是:");
for (int i = m - 1; i >= 0; i--)
{
Console.Write("{0}", chr[i]);
}
Console.WriteLine("\n按单词倒置输出的结果是:");
for (int i = m - 1; i >= 0; i--)
{
if (chr[i] == ' ')
{
// Console.WriteLine("遇到空格"); //此为了检验遇到空格是否会输出I值
// Console.WriteLine("{0}",i); //此为了找出空格的位置
for (int j = i + 1; j < m; j++)
{
if (chr[j] == ' ')
{
Console.Write(" "); //遇到空格退出;
break;
}
Console.Write("{0}",chr[j]);
if (j == m-1)
{
Console.Write(" ");
}
}
} //倒置输出到最后一个空格前的字符串
if (i == 0) //
{
for (int k = 0; k < m - 1; k++)
{
if (chr[k] == ' ')
{
Console.Write(" ");
break;
}
Console.Write("{0}", chr[k]);
}
}
} //倒置输出最后一个空格前的字符串
Console.ReadLine();
}
三、提升
经过一天时间的思考,运用数组,终于完成了:1、按字符串倒置输出;2、按单词倒置输出。
例:输入字符串为 I am a teacher I am a student
1、按字符串倒置输出。结果为:tneduts a ma I rehcaet a ma I
2、按单词倒置输出。结果为:student a am I teacher a am I
代码一定可以更简洁,追求最简洁的代码是我孜孜不倦的目标。
求教:请大侠们提供更简洁的代码,以供学习。(用数组)