2013-04-24 1 views
0

У меня раздвоение строка,Проверка правильность и хранение значений, разделенные запятые

string s = Console.ReadLine(); 
string[] values = s.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 

ы должны получать входные следующий образом:

строковых литерал, числовое значение, числовое значение, числовое значение или строку буквального

Я понимаю, что весь этот ввод читается как строка, но я пытаюсь проверить числа в строке (проверка на> 0), а также присваивать каждому значению в строке переменную. Какой был бы лучший способ сделать это?

+0

«Что было бы лучшим способом сделать это с помощью метода find с помощью метода Equals()?» ==> Я не понимаю этот вопрос. –

+0

И если число> 0, что вы хотите сделать? – Tim

+0

'StringSplitOptions.RemoveEmptyEntries' также сбросит вашу проверку. Пример: 'string, 1 ,, 'приведет к массиву из 2 элементов, поэтому вам придется посмотреть исходную строку, чтобы увидеть, чего не хватает. 'StringSplitOptions.None' был бы лучшим выбором (и я считаю, что это значение по умолчанию) – Tim

ответ

0

Вы ищете конкретный образец. Я бы предложил использовать регулярное выражение, а затем получить числовые группы - и выполнить проверку проверки 0.

+0

RegEx будет излишним для чего-то подобного, IMO. – Tim

0
string s = Console.ReadLine(); 
string[] values = s.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 
string stringValue0 = values[0]; 
int numericValue1 = int.Parse(value[1]); // Assuming the value is an valid interger. 
int numericValue2 = int.Parse(value[2]); // Assuming the value is an valid interger. 
int numericvalue3; 
string stringValue3; 
if (!int.TryParse(values[3], out numericValue3) // Trying to convert the text to an interger. If it fails, assign it to the stringValue3. 
    stringValue3 = values[3]; 

Вы всегда можете использовать int.TryParse для проверки, если текст содержит ряд.