C#中的字符串反转

时间:2017-04-12 04:15:34

标签: c# arrays string

例如,我的输入是my name is abcd
我需要显示为dcba si eman ym
我在下面做了一个输出abcd is name my
但不知道下一步该怎么做

static void Main(string[] args)
{
    Console.WriteLine("Enter a string: ");
    string[] input = Console.ReadLine().Split(' ');

    for (int i = input.Length-1; i >=0; i--)
    {
        Console.Write(input[i]+" ");
    }
    Console.ReadKey();
}

6 个答案:

答案 0 :(得分:1)

您可以使用API​​ - Array.Reverse

char[] charArray = input.ToCharArray();
Array.Reverse( charArray );
reversed = new string( charArray );

答案 1 :(得分:0)

您不需要.Split(' ')

中的string[] input = Console.ReadLine().Split(' ');

您只需使用string input = Console.ReadLine();读取整行,然后反转整行。

如果你看下面的链接,它提供了两个选项。

  1. 使用Array.Reverse
  2. 反转整个字符串
  3. 遍历从结尾到开头的每个字符并输出它。
  4. https://www.dotnetperls.com/reverse-string#d

答案 2 :(得分:0)

试试这个会很完美。我想这就是你一直在寻找的东西!

string Str, reversestring = "";
        int Length;
        Console.Write("Enter A String : ");
        Str = Console.ReadLine();
        Length = Str.Length - 1;
        while (Length >= 0)
        {
            reversestring = reversestring + Str[Length];
            Length--;
        }
        Console.WriteLine("Reverse  String  Is  {0}", reversestring);
        Console.ReadLine();

我的小提琴示例:Reverse with Words and Text

答案 3 :(得分:0)

你的代码所做的是通过单词反转初始字符串,如下所示:

var input = Console.ReadLine();
var sb = new StringBuilder(input.Length);
for (var i = input.Length - 1; i >= 0; --i)
{
    sb.Append(input[i]);
}
Console.WriteLine(sb.ToString());

要更改此设置,您需要读取整个字符串并将其用作char数组:

var input = Console.ReadLine();
var charArray = input.ToCharArray();
Array.Reverse(charArray);
var reversed = new string(charArray);
Console.WriteLine(reversed);

您也可以使用Array.Reverse方法:

OrderedDict(sorted(incoming_dict.items(), key=_fetch_ts))

答案 4 :(得分:0)

您可以使用LINQ的Aggregate函数来反转字符串

Console.WriteLine("Enter a string: ");
string input = Console.ReadLine();
input = input.Aggregate(new StringBuilder(), (j, k) => j.Insert(0, k)).ToString();

聚合将每个字符放在反转字符串的前面

答案 5 :(得分:0)

        public static string RevString(string str)
    {
        var charArry = str.ToCharArray();
        Array.Reverse(charArry);
        return new string(charArry);
    }
   public static string RevString2(string str)
    {
        string revString = "";
        foreach( char c in str)
        {
            revString = c + revString;
        }

        return revString;
    }

    //no change to the order of the words
    public static string RevString3(string str)
    {
        string[] strArray = str.Split(' ');

        string revString = "";
        foreach (string s in strArray)
        {
            var charArray = s.ToCharArray();
            Array.Reverse(charArray);
            revString +=  new string(charArray) + " ";
        }

        return revString;
    }
    public static string RevString4(string str)
    {
        string[] strArray = str.Split(' ');

        string revString = "";
        foreach (string s in strArray)
        {
            string revWord = "";
            foreach(char c in s)
            {
                revWord = c + revWord;
            }
            revString += revWord + " ";
        }

        return revString;
    }