簡體   English   中英

C#:我希望單詞的每個字母都以新行開頭

[英]C#: I want every letter of a word to begin in a new line

using System;

class HelloCSharp
{
     static void Main()
     {
         Console.WriteLine("Hello C#");
     }
}

我希望輸出是:

H
e
l
l
o 

C
#

但每個字母都應該從新行開始

我是新手,我知道,但我一直在尋找,但找不到答案。 它應該是Environment.NewLine東西嗎?

干得好:

string str = "Hello C#"
char[] arr = str.ToCharArray();

foreach (char c in arr)
{
    Console.WriteLine(c);
}

通過Join方法實現:

var text = "Hello C#".ToCharArray();
var textInLines = string.Join("\n", text);

Console.WriteLine(textInLines);

編寫一個函數來循環遍歷一個字符串。 像這樣:

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));

謝謝大家,但您提供的所有選項看起來都有些復雜。 這不是更容易嗎:

const string world = "Hello World!";
 for ( int i = 0; i < world.Length; i++)
    {
        Console.WriteLine(world[i]);
    }

我只是問,因為我剛剛開始學習並且不是編寫程序最好的最有效和最快的方法嗎? 我知道他們有很多方法可以使某些事情發揮作用。

真正的男人只使用正則表達式,一切! :-)

string str = "Hello\nC#";
string str2 = Regex.Replace(str, "(.)", "$1\n", RegexOptions.Singleline);
Console.Write(str2);

此正則表達式搜索任何一個字符(.)並將其替換為找到的字符加上\\n ( $1\\n )

(不,拜托......這是錯誤的......除非你真的很絕望,否則你不應該在C#中使用正則表達式)。

string Hello = "Hello C#";

foreach(char i in Hello)
{
 Console.WriteLine(i);
}

一個更簡單的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM