C# 将数组拆分为新数组并用空格打印

C# 将数组拆分为新数组并用空格打印,c#,arrays,sorting,C#,Arrays,Sorting,这个程序将对数字进行排序,并根据它们是否大于或小于100,将它们放入自己的数组中 我遇到的问题是打印此阵列。我希望行中的最后一个数字后面不要跟空格。我已经试过很多次了,现在我想我应该在这里问一下 我知道Console.Write(“\b”)

这个程序将对数字进行排序,并根据它们是否大于或小于100,将它们放入自己的数组中

我遇到的问题是打印此阵列。我希望行中的最后一个数字后面不要跟空格。我已经试过很多次了,现在我想我应该在这里问一下

我知道Console.Write(“\b”)
using System;
using System.Linq;

class SplitArray
{
    public static void Main(string[] args)
    {
        int[] myArray = GetNumbersFromConsole();

        int[] smallNumbers = new int[myArray.Length];
        int[] bigNumbers = new int[myArray.Length];

        int bigIndex = 0;
        int littleIndex = 0;

        for (int i = 0; i < myArray.Length; i++)
        {
            if(myArray[i] > 100)
            {
                bigNumbers[bigIndex++] = myArray[i];
            }
            else if(myArray[i] < 100)
            {
                smallNumbers[littleIndex++] = myArray[i];
            }
        }

        Console.Write("Big: ");

        for (int i = 1; i < bigIndex; ++i)
        {
            Console.Write(bigNumbers[i]);
            Console.Write(" ");
        }

        Console.WriteLine();
        //Console.WriteLine($"{bigNumbers[0]}");


        Console.Write("Little: ");

        for (int i = 0; i < littleIndex; i++)
        {
            Console.Write($"{smallNumbers[i]}");
            Console.Write(" ");
        }

        Console.ReadLine();
    }

    static int[] GetNumbersFromConsole()
    {
        int count = int.Parse(Console.ReadLine());
        int[] result = new int[count];

        for (int i = 0; i < count; ++i)
        {
            result[i] = int.Parse(Console.ReadLine());
        }

        return result;
    }
}
使用系统;
使用System.Linq;
类拆分数组
{
公共静态void Main(字符串[]args)
{
int[]myArray=GetNumberFromConsole();
int[]smallNumbers=newint[myArray.Length];
int[]bigNumbers=newint[myArray.Length];
int-bigIndex=0;
int-littleIndex=0;
for(int i=0;i100)
{
bigNumbers[bigIndex++]=myArray[i];
}
else if(myArray[i]<100)
{
smallNumbers[littleIndex++]=myArray[i];
}
}
控制台。写(“大:”);
对于(int i=1;i
您可以捕获您的
控制台

if(i != littleIndex - 1)
{
  Console.Write(" ");
}

littleIndex-1是最后一次执行循环,因此这将阻止它添加尾随空格。只需在打印大数字时对其执行相同的操作。

有一个内置的实用程序


我在玩更多的游戏,只是想在运行这个循环之前尝试发布数组中的第一个对象(也改变了循环,所以第一个项目不会被打印两次)

谢谢大家-我解决了它!:)

使用系统;
使用System.Linq;
命名空间数组
{
类拆分数组
{
公共静态void Main(字符串[]args)
{
int[]myArray=GetNumberFromConsole();
int[]smallNumbers=newint[myArray.Length];
int[]bigNumbers=newint[myArray.Length];
int-bigIndex=0;
int-littleIndex=0;
for(int i=0;i100)
{
bigNumbers[bigIndex++]=myArray[i];
}
else if(myArray[i]<100)
{
smallNumbers[littleIndex++]=myArray[i];
}
}
控制台。写(“大:”);
Write($“{bigNumbers[0]}”);
对于(int i=1;i
我尝试将其添加到代码中并运行了该程序。循环的bigIndex没有打印第一个数字。也许我误解了你的意思?检查for循环中的bigIndex@emsimpson92的回应并不影响bigIndex不打印第一个数字。我按照他的指示,在两个地方都添加了编辑。我以前也试过这个。那是因为你从
I=1
开始,而不是
I=0
啊,是的,现在试过了。成功了:)我一秒钟前解决了它,与你的略有不同,我会接受你的回答:)谢谢!实际上,这个方法与linq没有任何关系,它是从.NET2.0开始存在的
var str = string.Join(" ",bigNumbers);
Console.WriteLine("Big: " + str);
using System;
using System.Linq;

namespace Arrays
{
class SplitArray
{
    public static void Main(string[] args)
    {
        int[] myArray = GetNumbersFromConsole();

        int[] smallNumbers = new int[myArray.Length];
        int[] bigNumbers = new int[myArray.Length];

        int bigIndex = 0;
        int littleIndex = 0;

        for (int i = 0; i < myArray.Length; i++)
        {
            if(myArray[i] > 100)
            {
                bigNumbers[bigIndex++] = myArray[i];
            }
            else if(myArray[i] < 100)
            {
                smallNumbers[littleIndex++] = myArray[i];
            }
        }

        Console.Write("Big: ");
        Console.Write($"{bigNumbers[0]} ");
        for (int i = 1; i < bigIndex; i++)
        {
            Console.Write(bigNumbers[i]);

            if (i != bigIndex - 1)
            {
                Console.Write(" ");
            }
        }

        Console.WriteLine();

        Console.Write("Little: ");

        Console.Write($"{smallNumbers[0]} ");

        for (int i = 1; i < littleIndex; i++)
        {
            Console.Write($"{smallNumbers[i]}");

            if (i != littleIndex - 1)
            {
                Console.Write(" ");
            }
        }
        Console.ReadLine();
    }

    static int[] GetNumbersFromConsole()
    {
        int count = int.Parse(Console.ReadLine());
        int[] result = new int[count];

        for (int i = 0; i < count; ++i)
        {
            result[i] = int.Parse(Console.ReadLine());
        }

        return result;
    }
}
}