2014-01-13 64 views
-5

如何將指數值轉換爲等效的.Net Datatype值。 有誰知道如何將數字+字母字符串轉換爲long或int?convert numeric + alphabetical string

Example of a string : 3e317188a00577 
+0

有什麼結果爲什麼? –

+0

但是這個例子不是一個有效的'long'或'int'。 –

+1

字符串是什麼格式?看起來像十六進制?如果是這樣,那麼已經有很多答案了:http://stackoverflow.com/questions/1139957/c-sharp-convert-integer-to-hex-and-back-again – codeling

回答

0

也許你想提取數字只是爲了創建一個long?你可以使用Char.IsDigit和LINQ:

Char[] digitsOnly = "3e317188a00577".Where(Char.IsDigit).ToArray(); 
if(digitsOnly.Length > 0) 
{ 
    long result; 
    if (long.TryParse(new string(digitsOnly), out result)) 
    { 
     Console.Write("Successfully parsed to: " + result); 
    } 
} 

結果:Successfully parsed to: 331718800577

如果你不是想從十六進制解析它爲int /長:

long result = long.Parse("3e317188a00577", System.Globalization.NumberStyles.HexNumber); 

結果:17505812249314679

+0

謝謝大家的回覆!謝謝你們所有人的啓發。蒂姆Schmelter您的解決方案工作。再次感謝! – user3189577

0

如果你只想要字符串中的數字一樣長,然後試試這個:

longValue = Long.parseLong("3e317188a00577".replaceAll("\\D+",""), 10); 
0

你給我們的字符串看起來像一個十六進制值給我。在這種情況下,你可以將其轉換爲int /長這樣:

string numberAsHex = "3e317188a00577"; 
long numberAsInt = long.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);