簡體   English   中英

C#中的字符串反轉

[英]string reverse in C#

例如,我的輸入是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();
}

您可以使用 API - Array.Reverse

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

試試這個,這將完美地工作。 我想這就是你一直在尋找的!

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();

我的小提琴示例:用單詞和文本反轉

您不需要string[] input = Console.ReadLine().Split(' ');.Split(' ') string[] input = Console.ReadLine().Split(' ');

您可以簡單地使用string input = Console.ReadLine();讀取整行string input = Console.ReadLine(); 然后反轉整條線。

如果您查看以下鏈接,它會提供兩個選項。

  1. 使用Array.Reverse反轉整個字符串
  2. 從結尾到開頭循環遍歷每個字符並輸出它。

https://www.dotnetperls.com/reverse-string#d

您的代碼所做的是按單詞反轉初始字符串,如下所示:

my name is abcd --> abcd is name my

要更改此設置,您需要讀取整個字符串並將其用作字符數組:

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());

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

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

您可以使用 LINQ 的 Aggregate 函數來反轉字符串

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

聚合將每個 Char 附加到反向字符串

        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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM