2014-01-20 30 views
0

我的數據讀取器讀取我想從讀取器拆分結果並取第二個數字的行。所以例如數字是42我想要的2.我怎樣才能做到這一點很容易。有大約一百萬種我見過的方式,但沒有一個非常簡單。先謝謝你!簡單的方法來拆分兩個數字

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

什麼是ScaleGroup?你不能讓讀者閱讀它。如果它是一個'int',你應該使用'reader.GetInt32(reader.GetOrdinal(「ScaleGroup」))',那麼你可以使用'ToString'將它轉換爲'string',它有一個索引器來訪問一個char。 –

+0

看看'string.ToCharArray()' – ja72

+0

@ ja72:爲什麼'ToCharArray',他可以直接訪問一個字符:'char second =「42」[1];' –

回答

3

你並不需要使用Split()如果你只是想在第2個字符。只寫:

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

確保str確實至少有2個字符,當然。

編輯:如果你想要它作爲一個字符串,請參閱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特別是'%' - 不知道是什麼將數字轉換爲字符串以對其執行一些計算的點... –

相關問題