我正在将一些代码从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. 相当于JDIC?
- 2. 相当于AWS
- 3. Android:getElementsByTagName相当于?
- 4. 相当于WeakHashMap?
- 5. Linq相当于
- 6. drupalPost()相当于
- 7. 相当于transaction.transactionReceipt.bytes
- 8. 相当于SparkSQL
- 9. 相当于
- 10. 相当于C#
- 11. HQL'parsename'相当于
- 12. 相当于waitUntilAllOperationsAreFinished
- 13. Java等于()相当于PHP
- 14. WP7相当于EmptyDataTemplate?
- 15. find_by_sql相当于mongoid?
- 16. DateTime.FromOADate相当于swift
- 17. Vitamio相当于MEDIA_INFO_VIDEO_RENDERING_START
- 18. C#相当于InStrRev
- 19. .jcp相当于eclipse?
- 20. Java相当于Curl
- 21. psycopg2相当于mysqldb.escape_string?
- 22. Fortran相当于freopen
- 23. LINQ相当于Rails
- 24. .htaccess相当于baseurl?
- 25. PDO相当于odbc_tables?
- 26. JSP Post相当于
- 27. 相当于ModX块
- 28. AF_UNIX相当于Windows
- 29. 相当于原型
- 30. Python相当于phpinfo()
那么你想从'6.4.0.1'输出为'4'还是'6','4','0'和'1'? –
'Version.Parse'分析版本字符串。那是你需要的吗? http://msdn.microsoft.com/en-us/library/system.version.parse.aspx –
是的,wtol与宽字符串的atol相同 –