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

如何在不使用内置c#方法的情况下反转字符串,c#,.net,C#,.net,我想知道如何在不使用任何.NET内置方法的情况下在C#中反转字符串 我的初始代码: Console.WriteLine("Please enter a string"); string myString = Console.ReadLine(); 我们的想法是将名为myString的字符串反转,这是通过用户的控制台输入获得的。将其转换为字符数组,反转,转换为字符串。 (我在java中就是这样做的)。我们可以使用下面的过程来反转字符串 string myString = Console.Re

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

我的初始代码:

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

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

将其转换为字符数组,反转,转换为字符串。
(我在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();
string myString=Console.ReadLine();
char[]charStr=新字符[str.Length];
int k=字符长度-1;
对于(int i=0;i=0)
{
charStr[j]=str[i];
j--;
}
k--;
}
foreach(charStr中的char项)
{
控制台。写入(项);
}
Console.WriteLine();

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

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;
    }
公共静态字符串反转(字符串输入)
{
var inputArray=input.ToCharArray();
var end=输入阵列长度/2;
for(int i=0;i
听起来像是家庭作业,你试过什么?你在使用另一种语言时面临的困难是什么。如果不使用框架中内置的任何方法,则无法使用.Net。@ZoharPeled Answer已发布请检查,因为它正在反转给定字符串而不使用内置方法。数组是.Net框架的一部分。for循环由c#编译器转换为与IEnumerator(它是.Net框架的一部分)一起工作,等等。因此,您发布的答案是使用内置方法。你在和程序员交谈——我们喜欢吹毛求疵。这可能是一个很好的评论!发布问题后,你找到答案了吗?发布问题后,你找到答案了吗?这将以任何包含非英文字母的任何东西悲惨地失败,这将以任何包含非英文字母的东西为会失败,这将以任何东西的任何东西为悲惨地失败。这将以包含非英文字母的任何东西为会失败,这将以任何包含非英文字母的任何东西为会失败,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,例如,自自自自自自自1414141414666666666666666666666666666666666666666666666669ְאֵהָ㤸㤲ץ`这是希伯来圣经(基督教旧约)中的第一句话——如果你一个字符一个字符地倒转,你会发现所有的小点(Hebbew元音)都在错误的地方。显示了反转可能包含非英语字母的字符串的正确方法。@ZoharPeled,但他说没有使用任何.NET内置方法,我猜他不是想使用任何内置方法,只是不想使用任何反转方法(链接答案使用的是
reverse()
方法)链接答案不是试图不使用反转,它显示了如何正确处理包含非英语字母的字符串。两件截然不同的事情。