2014-01-20 3 views
0

Мой считыватель данных читает строки, которые я хочу разбить на результат, и возьмем вторую цифру. Так, например, номер 42, я хочу 2. Как я могу это сделать легко. Существует около миллиона способов, которые я видел, но не очень упрощенных. Заранее спасибо!Простой способ разделить два номера

ld.ScaleGroup = (ScaleGroup)reader["ScaleGroup"]; 
string[] split = ld.ScaleGroup.ToString().Split(?); 
+1

Что такое 'ScaleGroup'? Вы не можете наложить на него читателя. Если это 'int', вы должны использовать' reader.GetInt32 (reader.GetOrdinal («ScaleGroup»)), тогда вы можете использовать 'ToString', чтобы преобразовать его в строку, которая имеет индекс для доступа к символу. –

+0

Посмотрите на 'string.ToCharArray()' – ja72

+0

@ ja72: почему 'ToCharArray', он может получить доступ к char напрямую:' char second = "42" [1]; ' –

ответ

3

Вам не нужно использовать Split(), если вы просто хотите, 2-й символ , Просто напишите:

string str = ld.ScaleGroup.ToString(); 
char secondDigit = str[1]; 

str Убедитесь, что на самом деле имеет не менее 2 символов, конечно.

EDIT: Если вы хотите, чтобы это как строка, см. Ответ D Stanley, используя Substring().

Split() используется для строк, которые состоят из последовательности токенов, разделенных символом разделителя (или символами). Например, разделение "a,b,c" с использованием разделителя , будет возвращать массив из 3 строк "a", "b" и "c".

7

Если вы всегда хотите вторую цифру вы можете сделать

ld.ScaleGroup.ToString().Substring(1,1); 

Но что о числах < 10? > 100?

Или, если вы всегда хотите, чтобы те, цифры (например, 123 -> 3), а затем взять число мод 10:

int ones = ld.ScaleGroup % 10; 
+1

+1 специально для'% '- не уверен, что точка преобразования числа в строку для выполнения некоторых вычислений на нем ... –

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