【问题标题】:Reverse a char array in C#在 C# 中反转 char 数组
【发布时间】:2014-01-13 08:09:38
【问题描述】:

我正在努力学习 C#。我想输入一些文本并让它反转出来。它反转它,但多次,与输入文本的长度一样多。所以你好就变成了 olleholleholleholleholleh。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Reversed_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter text to be reversed");
            string inputText = Console.ReadLine();
            char[] myChar = inputText.ToCharArray();
            Array.Reverse(myChar);

            foreach (char character in myChar)
            {
                Console.Write(myChar);
            }
            Console.ReadLine();
        }
    }
}

我想尝试将字符串转换为 char 数组。以为我会注意到这一点,因为是的,我不需要 char 数组。

【问题讨论】:

    标签: c# arrays char


    【解决方案1】:

    因为每次你写整个数组不是一个字符,试试这个:

     foreach (char character in myChar)
     {
         Console.Write(character);
     }
    

    【讨论】:

    • 哇,这么简单我怎么没看到。太感谢了!我是这个网站的新手,我已经喜欢它了:D
    • @user3134332,很高兴为您提供帮助,看到其他答案,他们为您的示例提出了更好的方法
    • @WindowsProdigy7 如果建议的解决方案解决了您的问题,那么您应该将建议的解决方案标记为答案。
    • 现在标记为答案。谢谢!
    • @bas =) 一个也很棒)
    【解决方案2】:
     for( int i = myChar.Length -1 ; i >= 0 ; --i )
     {
          Console.Write(myChar[i]);
     }
    

    【讨论】:

    • 这有点超出我的技能水平!但是感谢您的帮助!
    • 啊,又看了一遍。这很棒。我现在明白了,只需要盯着它看一会儿(这里是 Noobie)。感谢您的回答!
    【解决方案3】:

    不需要有一个特殊的数组,做一个反转等,只需打印出字符backward

    static void Main(string[] args) 
    {
        Console.WriteLine("Enter text to be reversed");
        string inputText = Console.ReadLine();
    
        // Backward loop
        for (int i = inputText.Length - 1; i >= 0; --i)
          Console.Write(inputText[i]);
    }
    

    【讨论】:

    • 嘿,伙计,我看了一会儿就明白了。它通过获取字符串中的字符数减去输入来打印出字符串中的字符。然后从最高值到最低值直到达到 0。我这样说对吗?这似乎是一个很好的方法!
    • @WindowsProdigy7 不完全,-1 是因为c# 中的数组是从零开始的,没有-1 你只会得到IndexOutOfRangeException
    • 我对为什么需要 -1 有点困惑。等待是因为假设我输入了长度为 5 的 hello,但是因为它从 0 开始。h 是 0,e 是 1,l 是 2,l 是 3,o 是 4 所以如果它试图打印第五个字符那里什么都没有?
    • @WindowsProdigy7 如果您尝试打印第 5 个元素,您将超出数组范围(基本上是尝试访问属于其他内容的内存,因此您将获得不正确且无用的数据,如果尝试更改它会损坏其他数据)因此您将获得IndexOutOfRangeException 以防止可能的错误和损坏状态
    • 所以用更笨的术语(对不起xD)我说的正确,字符串上升到4但长度是5。但是因为它从0开始,所以当你尝试打印5时什么都没有。我需要一个是的,你是对的,否则我永远不会确定 xD 感谢您的帮助!
    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2015-02-11
    • 2014-08-13
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多