![](/img/trans.png)
[英]How to parse a string and convert it to double based on a format string?
[英]How to convert/parse string array to double?
我有一个带有文本和数字的字符串数组。 我从中提取了一个数字,但我无法将它放入一个int
或double
变量中,以便以后用于比较或其他任何事情。
相反,我使用了无法像我想要的那样工作的比较方法,从这两个字符串中输出更大的数字。 我想要的只是将数字放入变量中或让该比较方法起作用。 谢谢,我是初学者。
string[] Months = new string[12];
Months[0] = "Január 1"; //1
Months[1] = "Február 0"; //2
Months[2] = "Marec 4,5"; //3
Months[3] = "Apríl 8.3"; //4
Months[4] = "Máj 13"; //5
Months[5] = "Jún 17.3"; //6
Months[6] = "Júl 20.5"; //7
Months[7] = "August 21"; //8
Months[8] = "September 15"; //9
Months[9] = "October 8"; //10
Months[10] = "November 4"; //11
Months[11] = "December 1.4"; //12
double result = 0;
double result2 = double.Parse(Months[5].Substring(Months[5].IndexOf(" ")).TrimStart());
//double.TryParse(double.Parse(Months[5].Substring(Months[5].IndexOf(" ")).TrimStart()), out result);
Console.WriteLine(result2);
if (string.Compare(Months[4].Substring(Months[4].IndexOf(" ")).TrimStart(),
Months[5].Substring(Months[5].IndexOf(" ")).TrimStart()) > 0)
{
//Console.WriteLine("1");
Console.WriteLine(Months[4].Substring(Months[4].IndexOf(" ")).TrimStart());
}
如果你只想要每个的数字部分,在一个数组中:
var nums = Months.Select(m => double.Parse(m.Split()[1]));
不带参数的Split()
将字符串拆分为一个数组,使用任何空格作为分隔符。 然后我们选择拆分数组中的第二个条目以仅访问数字部分,并将其传递给double.Parse()
以将每个子字符串解析为双精度。
Months.Select()
是一个 linq 函数,如果您想了解更多信息,需要添加一个 using for System.Linq
,我建议您了解更多关于 linq 如何工作的信息。
您可以使用double.Parse(yourString, CultureInfo.InvariantCulture)
来解析您的字符串,如果您首先通过字符串中的空格将它们分成几部分。
string[] Months = new string[12];
Months[0] = "Január 1"; //1
Months[1] = "Február 0"; //2
Months[2] = "Marec 4,5"; //3
Months[3] = "Apríl 8.3"; //4
Months[4] = "Máj 13"; //5
Months[5] = "Jún 17.3"; //6
Months[6] = "Júl 20.5"; //7
Months[7] = "August 21"; //8
Months[8] = "September 15"; //9
Months[9] = "October 8"; //10
Months[10] = "November 4"; //11
Months[11] = "December 1.4"; //12
var parts = Months[5].Split(" ");
double result2 = double.Parse(parts[1], CultureInfo.InvariantCulture);
Console.WriteLine(result2); // Prints 17,3
var month4Parts = Months[4].Split(" ");
var month5Parts = Months[5].Split(" ");
var month4AsDouble = double.Parse(month4Parts[1], CultureInfo.InvariantCulture);
var month5AsDouble = double.Parse(month5Parts[1], CultureInfo.InvariantCulture);
if (month4AsDouble < month5AsDouble) // If 13 < 17,3
{
Console.WriteLine(month5AsDouble);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.