簡體   English   中英

如何在不使用內置 c# 方法的情況下反轉字符串

[英]How to reverse a string without using built-in c# method

我想知道如何在不使用任何 .NET 內置方法的情況下在 C# 中反轉字符串。

我的初始代碼:

Console.WriteLine("Please enter a string");
string myString = Console.ReadLine();  

這個想法是反轉名為myString的字符串,我們通過用戶的控制台輸入獲得它。

如果您試圖反轉僅包含英文字母的字符串(我認為因為您的答案不包含處理其他字母的方法),您可以通過執行以下操作來簡化您的代碼:

private static string ReverseString(string myString)
{
    string reversedString = string.Empty;

    for (int i = myString.Length - 1; i >= 0 ; i--)
    {
        reversedString += myString[i];
    }

    return reversedString;
}

顯然,這種方法不包含任何處理非英文字母的方法,它只是您答案的簡化。

我們可以將字符串轉換為字符數組並反轉數組。 給定一個大小為 N 的數組,我們只需要在循環中迭代 N/2 次,同時將數組末尾的字符與開頭的字符交換。 我們可以從開始和結束字符開始,交換它們,然后在每次迭代中向內移動,直到到達數組的中間。

    public static string Reverse(string input)
    {
        var inputArray = input.ToCharArray();
        var end = inputArray.Length / 2;

        for (int i = 0; i < end; i++)
        {
            var temp = inputArray[i];
            inputArray[i] = inputArray[inputArray.Length - i - 1];
            inputArray[inputArray.Length - i - 1] = temp;
        }

        var result = new string(inputArray);

        return result;
    }

將其轉換為字符數組,反向,轉換為字符串。 (這就是我在 Java 中的做法)。

我們可以使用下面的過程來反轉字符串。

string myString = Console.ReadLine();
        char[] charStr = new char[str.Length];

        int k = charStr.Length - 1;
        for (int i=0;i<charStr.Length;i++)
        {
            int j = k;
            while (j>=0)
            {
                charStr[j] = str[i];
                j--;
            }
            k--;
        }

        foreach (char item in charStr)
        {
            Console.Write(item);
        }
        Console.WriteLine();

暫無
暫無

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

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