我的输出是一串整数,在同一行上连续显示。最好使用反斜杠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();
因此,包含输入中所有偶数的字符串偶数应在控制台的不同行上看到。 任何帮助将不胜感激!
答案 0 :(得分:0)
foreach (var e in even)
Console.WriteLine(e);
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));