2015-07-28 22 views
5
using System; 

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

Voglio l'output di essere:C#: Voglio ogni lettera di una parola per iniziare in una nuova linea

H 
e 
l 
l 
o 

C 
# 

ma ogni lettera deve iniziare su una nuova linea

Io sono nuovo lo so ma continuo a cercare e non riesco a trovare la risposta. Dovrebbe essere qualcosa con Environment.NewLine?

+0

loop attraverso i caratteri nella stringa e utilizzare 'Environment.NewLine' come avete indovinato. – user1666620

risposta

11

Qui si va:

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

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

Bene, questo funziona almeno con quelli del BMP. Spero che tu non trovi niente al di fuori, né multi-punto di codice. – Deduplicator

5

scrivere una funzione per scorrere una stringa. In questo modo:

void loopThroughString(string loopString) 
{ 
    foreach (char c in loopString) 
    { 
     Console.WriteLine(c); 
    } 
} 

ora si può chiamare questa funzione:

loopThroughString("Hello c#"); 

EDIT

Di, se vi piace LINQ è possibile ruotare la stringa in una lista di stringhe di un carattere e unirlo aggiungendo nuove righe tra ogni carattere e stampandolo sulla console

string myString = "Hello c#"; 
List<string> characterList = myString.Select(c => c.ToString()).ToList(); 
Console.WriteLine(string.Join("\n", characterList)); 
5

Attuazione da metodo Join:

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

Console.WriteLine(textInLines); 
1

Grazie a tutti, ma tutte le opzioni che avete dato sembra un po 'complicato. Non è questo più facile:

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

sto solo chiedendo perché ho appena iniziato l'apprendimento e non è il più efficace e veloce per scrivere un programma il migliore? So che sono molti modi per far funzionare qualcosa.

0

I veri uomini usano solo espressioni regolari, per tutto! :-)

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

Questa ricerca espressione regolare per qualsiasi carattere (.) e sostituirlo con il carattere trovato più un \n ($1\n)

(no, per favore ... è falso ... voi non dovresti usare le espressioni regolari in C# a meno che tu non sia davvero disperato).

+3

come dice la vecchia battuta - hai usato un'espressione regolare per risolvere un problema. ora hai 2 problemi. – user1666620

Problemi correlati