我正在將一些代碼從C++轉換爲C#,並且有一個函數wtol需要一個字符串輸入並輸出一個整數。具體來說,它需要版本字符串6.4.0.1
並將其轉換爲4.我如何在C#中執行此操作?我試過convert.toInt32
,但慘敗了。wtol相當於#
Q
wtol相當於#
2
A
回答
4
4
試試這個(假設你具有第一和第二點之間的數字):
string myString = "6.4.0.1";
int myInt = Convert.ToInt32(myString.Split('.')[1]);
位更安全的方法將(假設在字符串中的至少一個點):
int myInt = 0;
int.TryParse(myString.Split('.')[1], out myInt);
最安全方法將是:
int myInt = 0;
string[] arr = myString.Split('.');
if(arr.Length > 1 && int.TryParse(arr[1], out myInt))
{
//myInt will have the correct number here.
}
else
{
//not available or not a number
}
3
使用此假設您將始終有一個格式是XXXX
var test = "6.4.0.1";
var parts = test.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
int result = int.Parse(parts[1]);
0
我會建議使用TryParse
,而不是僅僅Parse
,以防你從一個不受信任的來源獲取版本號。
var versionString = "6.4.0.1";
Version version;
if (Version.TryParse(versionString, out version))
{
// Here you get your 4
Debug.WriteLine("The version Integer is " + version.Minor);
}
else
{
// Here you should do your error handling
Debug.WriteLine("Invalid version string!");
}
相關問題
- 1. .format相當於
- 2. 相當於transaction.transactionReceipt.bytes
- 3. HQL'parsename'相當於
- 4. 相當於WeakHashMap?
- 5. 相當於JDIC?
- 6. 相當於SparkSQL
- 7. Android:getElementsByTagName相當於?
- 8. Fortran相當於
- 9. drupalPost()相當於
- 10. 相當於waitUntilAllOperationsAreFinished
- 11. 相當於
- 12. 相當於AWS
- 13. $ dialog.messageBox相當於
- 14. Linq相當於
- 15. 相當於@encode
- 16. 相當於C#
- 17. Java等於()相當於PHP
- 18. callgrind相當於java?
- 19. ToolStripContainer相當於AutoScrollMinSize
- 20. strtoul相當於C#
- 21. TensorFlow相當於numpy.all()
- 22. iTextSharp相當於XPdfFontOptions
- 23. fsockopen相當於perl
- 24. Java相當於scala.collection.mutable.Map.getOrElseUpdate
- 25. ProgressDialog相當於iOS
- 26. Dart相當於Array.prototype.map()?
- 27. log4j2相當於log4j.defaultInitOverride
- 28. $(this)相當於CsQuery
- 29. ReactiveCocoa相當於Observable.Create
- 30. DateTime.FromOADate相當於swift
那麼你想從'6.4.0.1'輸出爲'4'還是'6','4','0'和'1'? –
'Version.Parse'分析版本字符串。那是你需要的嗎? http://msdn.microsoft.com/en-us/library/system.version.parse.aspx –
是的,wtol與寬字符串的atol相同 –