需要从“1.2.3.4”到“1.2”的字符串中获取子字符串 我有这个解决方案:
string version = "1.2.3.4";
var major = version.Substring(0, version.Substring(0, version.LastIndexOf('.')).LastIndexOf('.'));
但它看起来很难看。 什么是最好的方法呢? (注意)初始字符串可能具有不同的大小,如11.22.33.44或其他
答案 0 :(得分:8)
这样的东西?
var newstr = String.Join(".", "1.2.3.4".Split('.').Take(2));
或者您可能想要使用Version类
var ver = new Version("1.2.3.4");
Console.WriteLine(ver.Major + "." + ver.Minor);
答案 1 :(得分:2)
考虑使用Version
类:
string version = "1.2.3.4";
Version ver = new Version(version);
然后您可以合并Major
和Minor
var major = string.Format("{0}.{1}", ver.Major, ver.Minor);
这会给你"1.2"
答案 2 :(得分:0)
这个怎么样?
string version = "1.2.3.4";
int pos1 = version.IndexOf(".");
if (pos1 >= 0)
{
pos1++;
int pos2 = version.IndexOf(".", pos1);
if (pos2 >= 0)
{
version = version.Substring(0, pos2);
}
}
答案 3 :(得分:0)
我喜欢使用正则表达式进行这种解析:
string version = "1.2.3.4";
string sub = Regex.Match(version, @"[1-9].[1-9]").ToString();
答案 4 :(得分:0)
嗯,这是另一种方法。虽然你应该使用Version
类。
string version = "1.2.3.4";
int indexOfFirstDot = version.IndexOf('.', 0);
int indexOfSecondDot = version.IndexOf('.', indexOfFirstDot+1);
string majorAndMinorVersion = version.Substring(0, indexOfSecondDot);