如何建立最小最大值,从一个字符数组到同一个字符数组输出

How to establish a min max value, from a char array to same char array for output

这是我的代码:

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

namespace ConsoleApplication7
{
    class Program
    {

        #region//Main() Put everything thats finished in here to output it to Console Apllication.
        static void Main(string[] args)
        {
            FirstPart();
        }
        #endregion



        #region
        static void FirstPart() // don't know what else to call this.
        {
            //Console.WriteLine(numS());// commented out

这就是我的问题所在。

            string pi = Console.ReadLine();
            PItoArray = pi.ToCharArray(pi.Min(),pi.Max());
            Console.WriteLine(PItoArray);

我的问题到此结束。

        }
        #endregion

        #region //numS() gets number of char in player input.
        //static int numS()
        //{
        //    int num = PlayerInput().Length;
        //    return num;
        //}
        #endregion

        #region//PlayerInput() Gets whatever player writes in console apllication 
        static string PlayerInput()
        {  
            string S = Console.ReadLine();
            return S;
        }
        #endregion

        static char[] PItoArray;



    }
}

现在这些是详细信息(如果您需要更多信息,请随时回复。):

我尝试使用 num.max 而不是 pi.max,我个人偏好将所有内容拆分,但在这两种情况下,我都会遇到超出范围的异常,其中索引为负或大于集合 我认为它应该起作用的方式是它

  1. 将我写的任何内容设置为 pi 变量

  2. 然后将每个字符拆分为字符数组

  3. 然后使用 pi 来确定最小值和最大值。

  4. 那么它应该按照原样写出来。前任。 ""hello"输入变成"hello"输出。

现在我有 3 个问题:

  1. 我的逻辑对吗?如果不是,请原谅我 18 岁,主要是我喜欢探索我能做什么和不能做什么。

  2. 如何使用 char 数组的最小值和最大值 ex。如果我写 Hello 我可以使用

    char[] Var = pi.ToCharArray(0,5);

    ConsoleWriteLine(Var);

输出会是"Hello"对吗?但是如果我写 "Hello World" 我将如何获得字符串中的所有字符,而不管所述字符串中的字符数量,或者更好的询问方式是我如何使用字符串中的字符数量来获取 ToCharArray(min,max) 的最小值和最大值,所以如果我写一个 10 个字母的句子或一个 100 个字母的句子,我永远不会得到超出范围的异常?

  1. 有没有办法用简单的 1-5 行代码来做到这一点?我并不懒惰,但越简单越容易,所以为什么不使用它呢。

如果你想把字符串转换成一个完全相同大小的字符数组,你可以只调用 pi.ToCharArray() 不带任何参数,它会自动创建一个包含完全相同数量的字符的字符数组原始字符串。

另请注意,调用 pi.Max() 将返回给您的是根据 ASCII table 具有最高字符代码的字符,而不是您假设的字符串大小。 ("Hello, world".Max() returns 具有代码 114 的字符 'r' - 字符串中最高的字符代码)。

您的最大值不能大于 pi.Length,因为这是字符串长度。 pi.ToCharArray 中的第一个参数 - Min - 是 string.You 的起始索引,可以选择 Min 为 0 到 Max 之间的任何值。 pi.ToCharArray 中的第二个参数应该是你想要的 charArray 的长度,它可以是从 0 到 Max - Min 的任何值。 您还可以阅读此文档:String.ToCharArray(int32 start, int32 length)

再次你好,感谢你们的快速回答,我做了一些不同的事情(虽然幸运的是你们两个中的一个说的很准确。)这是我想出的:

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

namespace SearchCharInString
{
    class Program
    {



        #region//Main() Put everything thats finished in here to output it to Console Apllication.
        static void Main(string[] args)
        {
            FirstPart();
        }
        #endregion



        #region // HERE IS WHERE CHANGED HAPPENED!!
        static void FirstPart()
        {

            Console.WriteLine(PItoArray());
        }
        #endregion



        #region//PlayerInput() Gets whatever player writes in console apllication 
        static string PlayerInput()
        {
            string S = Console.ReadLine();

            return S;
        }
        #endregion

这是我改变的

        #region // HERE IS WHERE CHANGED HAPPENED!!
        static char[]PItoArray() 
            {
            string PI = PlayerInput();

            int piLength = PI.Length;

            return PI.ToCharArray(0,piLength);

            }
        #endregion



    }
}

我是这样称呼它的

#region // HERE IS WHERE CHANGED HAPPENED!!
    static void FirstPart()
    {

        Console.WriteLine(PItoArray());
    }
    #endregion

我会认可你的回答,因为它有助于我的研究。再次感谢大家。 我相信现在我应该能够在我的字符中搜索某些东西,甚至可以从使用字母索引到此代码的 if 语句中找出某些单词。