2015-09-01 2 views
-2

Ищете способ разбить следующую строку (покерную руку): C 14 C 13 C 12 C 11 C 10 Чтобы я мог отдельно хранить костюмы на карте значения, как я могу отделить символы и целые числа, новые для C# и это, вероятно, просто, как ад, но, пожалуйста, объясните мне в новичку-дружески приветствий :)Как разбить некоторые части строки на разные массивы

+0

Первая ссылка в google http://www.dotnetperls.com/split – acostela

+0

Кажется, что вы ищете метод разделения String. проверить это: https://msdn.microsoft.com/en-us/library/ms228388.aspx –

+0

также это было задано несколько раз. http://stackoverflow.com/questions/8928601/how-can-i-split-a-string-with-a-string-delimiter –

ответ

0

приведены ниже код

string str = "C 14 C 13 C 12 C 11 C 10"; 

string[] mixArray = str.Split(' '); 

List<int> numbers = new List<int>(); 
List<string> characters = new List<string>(); 

for (int i = 0; i < mixArray.Length; i++) 
{ 
    int tempInt; 
    if (int.TryParse(mixArray[i], out tempInt)) 
     numbers.Add(tempInt); 
    else 
     characters.Add(mixArray[i]); 
} 
0

Я предлагаю вам иметь более объектно-ориентированный подход. Сначала нужно создать свой класс «карты», чтобы сохранить одну карту внутри

public class Card 
{ 
    public int Value { get; set; } 
    public string Suit { get; set; } 
} 

после этого вы можете управлять строку как следовать

//Original string 
string values = "C 14 C 13 C 12 C 11 C 10"; 
//this line will split your string in an array and will take out empty values if exists 
var split = values.Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToArray(); ; 

List<Card> cards = new List<Card>(); 
string card= string.Empty; 

    for (int i = 0; i < split.Count() - 1; i += 2) 
    { 
     cards.Add(new Card() { Value = int.Parse(split[i + 1]), Suit = split[i] }); 
    } 

После все карты хранятся в списке, который является более чем массив. Я думаю, может быть лучше aproach.

Смежные вопросы