如何在不使用内置C#方法的情况下反转字符串

时间:2018-12-02 09:52:04

标签: c# .net

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

我的初始代码:

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

想法是反转名为myString的字符串,该字符串是通过用户控制台输入获得的。

4 个答案:

答案 0 :(得分:1)

如果您尝试反转仅包含英文字母的字符串(我想是因为您的答案不包含处理其他字母的方法),则可以通过执行以下操作来简化代码:

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

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

    return reversedString;
}

很明显,这种方法没有任何处理非英语字母的方法,只是简化了答案。

答案 1 :(得分:0)

我们可以将字符串转换为char数组并反转数组。 给定大小为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;
    }

答案 2 :(得分:-1)

将其转换为字符数组,反向,转换为字符串。 (这就是我在Java中的做法)。

答案 3 :(得分:-1)

我们可以使用以下过程反转字符串。

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