我正在将一些代码从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相同 –