我只需要读取完整字符串的特定部分.该字符串将采用以下形式:
"1部分货币名称= 0.4232其他货币名称"
因此,我能想到的最快的方法是将字符串拆分为等于(=)运算符,从而向数组添加两个值,如下所示:
string rawInput = "1 Some Currency Name = 0.4232 Other Currency Name";
string[] rawSplit = rawInput.Split('=');
string firstRate = rawSplit[0].ToString();
string secondRate = rawSplit[1].ToString();
Run Code Online (Sandbox Code Playgroud)
我现在只需要获取secondRate字符串的第一部分("0.4232").所以我会再次拆分该字符串(编码错误):
string[] lastSplit = secondRate.Split(); //Split at whitespace characters
string firstValue = lastSplit[0].ToString(); //Should return "0.4232" but instead returns ""
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序来测试此函数时,它返回一个空字符串而不是值"0.4232".为什么会这样?我在这里错过了什么?
完整方法:
private void btnTest_Click(object sender, EventArgs e)
{
string rawInput = "1 Some Currency Name = 0.4232 Other Currency Name";
string[] rawSplit = rawInput.Split('=');
string baseRate = rawSplit[0].ToString(); //1 Some Currency Name
string conversionRate = rawSplit[1].ToString(); //0.4232 Other Currency Name
rawSplit = GetSplit(conversionRate);
XtraMessageBox.Show(rawSplit[0].ToString()); //Returns blank string here???
}
private string[] GetSplit(string inputString)
{
return inputString.Split();
}
Run Code Online (Sandbox Code Playgroud)
欢迎任何想法或建议,将不胜感激!
Ree*_*sey 12
问题是,当你将原始字符串拆分为时'=',你得到的结果是在结果的开头有一个额外的空格,基本上rawSplit[1]等于" 0.4232 Other Currency Name".
您可以使用String.Split的重载,它允许您指定删除空条目,这将删除结果中的任何空白条目.
string[] lastSplit = secondRate.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
另外,ToString()当输入已经是字符串时,不需要使用:
string[] rawSplit = rawInput.Split('=');
// rawSplit is a string array, so rawSplit[0] is already a string...
string firstRate = rawSplit[0]; // .ToString();
Run Code Online (Sandbox Code Playgroud)