如何在多行中显示整数字符串?

时间:2018-10-07 07:34:53

标签: c# string

我的输出是一串整数,在同一行上连续显示。最好使用反斜杠n,如何将它们显示在新行中? 这是我到目前为止的内容:

string even = "";

        while (true)
        {
            string inputData = Console.ReadLine();
            if (inputData.Equals("x", StringComparison.OrdinalIgnoreCase))
            {
                break;
            }

            for (int i = 0; i < inputData.Length; i++)
            {
                if (inputData[i] % 2 == 0)
                {
                     even +=inputData[i];

                }
            }

        }
        foreach (var e in even)
            Console.WriteLine(e);
        bool something = string.IsNullOrEmpty(even);
        if( something == true)
        {
            Console.WriteLine("N/A");
        }
        Console.ReadLine();

因此,包含输入中所有偶数的字符串偶数应在控制台的不同行上看到。  任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

简单的控制台otuput:

foreach (var e in even)
    Console.WriteLine(e);

HTML输出

var result = "";

foreach (var e in even)
    result += e + "<br>\n";

return Content(result);

答案 1 :(得分:0)

使用string.Join从数字字符串中创建一个字符串(字符串是字符的集合,因此您可以这样做),并将分隔符指定为Environment.NewLine

var result = string.Join(Environment.NewLine, even.AsEnumerable());

作为旁注,不建议在循环中连接像这样的字符串。使用StringBuilder。有关说明,请参见When to use StringBuilder?,其中包含许多链接的问题。


还值得一提的是,尽管inputData[i] % 2 == 0对您有用,但您应该记住iputData[i]是一个字符而不是整数。因此,%对字符的ASCII表示进行操作。对于数字情况,它可以按预期工作,但是例如A % 2 == 0也可以工作。

如果熟悉linq,则可以进行如下重构:

var even = string.Join(Environment.NewLine, inputData.Select(c => c % 2 == 0));