String.Split()返回空值

Jua*_*uan 2 c# string split

我只需要读取完整字符串的特定部分.该字符串将采用以下形式:

"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)