for循环字符串的问题

时间:2019-05-09 21:59:01

标签: c# for-loop

我是C#编程的新手,我试图弄清楚如何做 可能会反转字符串中除包含e的单词以外的所有单词。

我当前的代码将检测到包含e的单词,并将它们写在另一个文本框中:

string text = txbInput.Text;
            var words = text.Split(' ');
            for (int i = 0; i < words.Length; i++)
            {
                if (words[i].Contains('e'))
                {
                   txbOutput.Text += words[i];
                }

当前:

输入:过马路的鸡

输出:小鸡

预期结果:

输入:过马路的鸡

输出鸡肉gnissorc daor

2 个答案:

答案 0 :(得分:3)

您可以简单地在空格字符上拆分单词,然后为每个单词选择单词本身或反向单词(取决于它是否包含'e'字符),然后将它们重新加入再加上空格字符:

txbOutput.Text = string.Join(" ", txbInput.Text.Split(' ')
    .Select(word => word.Contains("e") ? string.Concat(word.Reverse()) : word));

答案 1 :(得分:1)

输出:鸡肉gnissorc daor

using System;


namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = "chicken crossing the road";

            foreach (var item in input.Split(' '))
            {
                if (item.Contains('e'))
                {
                    Console.Write(item + ' ');
                }
                else
                {
                    Console.Write(Reverse(item) + ' ');
                }
            }
        }

        public static string Reverse(string s)
        {
            char[] charArray = s.ToCharArray();
            Array.Reverse(charArray);
            return new string(charArray);
        }
    }
}
enter code here

编辑

 foreach (var item in input.Split(' '))
    {
        if (item.Contains('e'))
        {
            txbOutput.Text = txbOutput.Text+ item + ' ';
        }
        else
        {
            txbOutput.Text= txbOutput.Text+ Reverse(item) + ' ';
        }
    }