黑马程序员技术交流社区

标题: 师兄,师姐帮忙解释下这道题(字符串的) [打印本页]

作者: 孙亚雄    时间: 2012-8-12 15:58
标题: 师兄,师姐帮忙解释下这道题(字符串的)
            8、 接收用户输入的一句英文,将其中的单词以反序输出。  例如:“I love you”→“i evol uoy”
            Console.WriteLine("请输入一句英文");
            string word = Console.ReadLine();
            for (int i=word.Length-1;i>=0; i--)
            {
                Console.Write(word[i]);
            }
            Console.ReadKey();

程序写到这里了,我知道我是做错了,思路是 分割字符串后在倒序输出么,具体怎么写,能否给个注释 ,谢谢了


作者: 许庭洲    时间: 2012-8-12 16:40
Console.WriteLine("请输入一句英文");
string word = Console.ReadLine();  //I love you
string[] subs = word .Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);
string result = "";
for( int k=0; k<subs.Length - 1; k++)
{
         result += subs[i] + " ";
}
result= result.Trim();  
作者: 孙亚雄    时间: 2012-8-12 17:04
许庭洲 发表于 2012-8-12 16:40
Console.WriteLine("请输入一句英文");
string word = Console.ReadLine();  //I love you
string[] subs = ...

貌似不对吧。。。
作者: 李祖庆    时间: 2012-8-12 17:20
你的问题解决了的话,你再做下将  “I love you”→“you love I”  ,看能不能写出
作者: yl89898    时间: 2012-8-12 17:23
Console.WriteLine("请输入一句英文:");
            string word =Console.ReadLine();
            string result = "";
            for(int i=word.Length-1;i>=0;i--)
            {
                char a = word[i];               
                result = result + a;
            }
            Console.WriteLine(result);
            Console.ReadKey();
作者: 孙亚雄    时间: 2012-8-12 18:53
李祖庆 发表于 2012-8-12 17:20
你的问题解决了的话,你再做下将  “I love you”→“you love I”  ,看能不能写出 ...

我上面写的不就是吗
作者: 许庭洲    时间: 2012-8-13 08:24
本帖最后由 许庭洲 于 2012-8-13 08:25 编辑
孙亚雄 发表于 2012-8-12 17:04
貌似不对吧。。。

Console.WriteLine("请输入一句英文");
string word = Console.ReadLine();  //I love you
string[] subs = word .Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries);
string result = "";
foreach(string i in subs)
{
     for( int k=subs.Length - 1; k>=0; k--)
    {
         result += subs + " ";
    }
}
result= result.Trim();  
作者: 李祖庆    时间: 2012-8-13 09:41
孙亚雄 发表于 2012-8-12 18:53
我上面写的不就是吗

“I love you”→“i evol uoy” 和  “I love you”→“you love I”   是不一样的
作者: 许波    时间: 2012-8-13 10:57
Console.WriteLine("请输入一句英文");
            string word = Console.ReadLine();
            char[] newword = word.ToCharArray();
            string s = "";           
            for (int i = newword.Length; i > 0;i-- )
            {

                s += newword[i - 1];   
               
            }
            Console.WriteLine("倒叙输出的结果为");
            Console.Write(s);
            Console.ReadKey();
下面是第二种
Console.WriteLine("请输入一句英文");
            string word = Console.ReadLine();
            char[] newword = word.ToCharArray();         
            Console.Write(string.Concat<char>(newword.Reverse<char>()));
作者: 王龙喜    时间: 2012-8-13 13:39
你这个应该把分割后的每个单词再存入一个数组,然后将 存入新数组的这个元素逆序输出就可以了。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Text5
{
    class Program
    {
        static void Main(string[] args)
        {  //接收用户输入的一句英文,将其中的单词以反序输出

            
            Console.WriteLine("您好,请输入一句英文!");

            string str = Console.ReadLine();
            string[] words = str.Split(' ');  //将英文句子 分割成空格隔开的几个单词、

            for (int i = 0; i < words.Length; i++)   // 进行 单词的个数次的循环、
            {
                char[] s = words[i].ToCharArray();    //将每个单词的字母存入s数组中。
                for (int j = s.Length - 1; j >= 0; j--)   //将每个单词逆序输出
                {
                  Console.Write(s[j]);
                }
                Console.Write(" ");
            }
            Console.ReadKey();



        }

    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2