如何將指數值轉換爲等效的.Net Datatype值。 有誰知道如何將數字+字母字符串轉換爲long或int?convert numeric + alphabetical string
Example of a string : 3e317188a00577
如何將指數值轉換爲等效的.Net Datatype值。 有誰知道如何將數字+字母字符串轉換爲long或int?convert numeric + alphabetical string
Example of a string : 3e317188a00577
也許你想提取數字只是爲了創建一個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
謝謝大家的回覆!謝謝你們所有人的啓發。蒂姆Schmelter您的解決方案工作。再次感謝! – user3189577
如果你只想要字符串中的數字一樣長,然後試試這個:
longValue = Long.parseLong("3e317188a00577".replaceAll("\\D+",""), 10);
你給我們的字符串看起來像一個十六進制值給我。在這種情況下,你可以將其轉換爲int /長這樣:
string numberAsHex = "3e317188a00577";
long numberAsInt = long.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
這裏有一個類似的問題: Convert numbers with exponential notation from string to double or decimal
做到這一點的方法是:
String myString = "3e317188a00577";
Double myDouble = double.Parse(myString, CultureInfo.InvariantCulture);
有什麼結果爲什麼? –
但是這個例子不是一個有效的'long'或'int'。 –
字符串是什麼格式?看起來像十六進制?如果是這樣,那麼已經有很多答案了:http://stackoverflow.com/questions/1139957/c-sharp-convert-integer-to-hex-and-back-again – codeling