using System;
class HelloCSharp
{
static void Main()
{
Console.WriteLine("Hello C#");
}
}
我希望输出为:
H
e
l
l
o
C
#
但每个字母都应该从一个新行开始
我是新手,我知道,但我一直在寻找,无法找到答案。它应该是Environment.NewLine
吗?
答案 0 :(得分:11)
你走了:
string str = "Hello C#"
char[] arr = str.ToCharArray();
foreach (char c in arr)
{
Console.WriteLine(c);
}
答案 1 :(得分:6)
通过 Join 方法实施:
var text = "Hello C#".ToCharArray();
var textInLines = string.Join("\n", text);
Console.WriteLine(textInLines);
答案 2 :(得分:5)
编写一个循环遍历字符串的函数。像这样:
void loopThroughString(string loopString)
{
foreach (char c in loopString)
{
Console.WriteLine(c);
}
}
现在你可以调用这个函数:
loopThroughString("Hello c#");
修改强>
当然,如果您喜欢linq,您可以将字符串转换为单字符字符串列表,并通过在每个字符之间添加新行来合并它,而不是在控制台上打印
string myString = "Hello c#";
List<string> characterList = myString.Select(c => c.ToString()).ToList();
Console.WriteLine(string.Join("\n", characterList));
答案 3 :(得分:1)
除了你给出的所有选项看起来有点复杂之外,谢谢你们。这不容易:
const string world = "Hello World!";
for ( int i = 0; i < world.Length; i++)
{
Console.WriteLine(world[i]);
}
我只是在问,因为我刚开始学习并且不是最有效和最快速的编写程序的方法吗?我知道他们有很多方法可以让事情发挥作用。
答案 4 :(得分:0)
真正的男人只使用正则表达式! : - )
string str = "Hello\nC#";
string str2 = Regex.Replace(str, "(.)", "$1\n", RegexOptions.Singleline);
Console.Write(str2);
此正则表达式搜索任何一个字符(.)
,并将其替换为找到的字符加上\n
($1\n
)
(不,请......这是假的......你不应该在C#中使用正则表达式,除非你真的很绝望)。
答案 5 :(得分:0)
string Hello = "Hello C#";
foreach(char i in Hello)
{
Console.WriteLine(i);
}
更简单的解决方案。