2015-07-28 4 views
5
using System; 

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

Я хочу выход быть:C#: Я хочу, чтобы каждая буква слова, чтобы начать с новой строки

H 
e 
l 
l 
o 

C 
# 

но каждая буква должна начинаться на новой строке

Я нахожусь но я знаю, но я продолжаю искать и не могу найти ответ. Должно ли это быть чем-то с Environment.NewLine?

+0

прокрутите символы в строке и используйте 'Environment.NewLine', как вы догадались. – user1666620

ответ

11

Здесь вы идете:

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

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

Хорошо, что работает с теми, кто в BMP по крайней мере. Надеюсь, что вы не получите ничего снаружи, ни многоколоночных. – Deduplicator

5

Написать функцию цикла через строку. Как так:

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

теперь вы можете вызвать эту функцию:

loopThroughString("Hello c#"); 

EDIT

Из, если вы, как LINQ вы можете превратить строку в список строк односимвольных и объединить его, добавив новые линии между каждым символом, а не печатать на консоли

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

Осуществление Join метод:

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

Console.WriteLine(textInLines); 
1

Спасибо всем, но все варианты, которые вы дали выглядит немного сложнее. Разве это не проще:

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

Я просто спрашиваю, потому что я только начал изучать и не самый эффективный и быстрый способ, чтобы написать программу лучше всего? Я знаю, что у них много способов заставить что-то работать.

0

Настоящие мужчины используют только регулярные выражения, для всего! :-)

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

Это регулярное выражение поиска для любого одного символа (.) и заменить его на найденный символ плюс \n ($1\n)

(нет, пожалуйста ... это ложь ... Вы не следует использовать регулярные выражения в C#, если вы действительно не отчаянно).

+3

Как старая шутка идет - вы использовали регулярное выражение для решения проблемы. теперь у вас есть 2 проблемы. – user1666620