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

“ 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();


现在,我只需要获取secondRate字符串的第一部分(“ 0.4232”)。因此,我将再次拆分该字符串(错误的编码):

string[] lastSplit = secondRate.Split(); //Split at whitespace characters
string firstValue = lastSplit[0].ToString(); //Should return "0.4232" but instead returns ""


当我运行应用程序以测试此功能时,它将返回一个空字符串,而不是值“ 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();
}


欢迎任何想法或建议,我们将不胜感激!

最佳答案

问题是,当您在'='处分割原始字符串时,您得到的结果在结果的开头有一个额外的空格,基本上rawSplit[1]等于" 0.4232 Other Currency Name"

您可以使用String.Split重载,该重载允许您指定删除空条目,这将修剪结果中的所有空白条目。

string[] lastSplit = secondRate.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);


附带说明,当输入已经是字符串时,无需使用ToString()

string[] rawSplit = rawInput.Split('=');
// rawSplit is a string array, so rawSplit[0] is already a string...
string firstRate = rawSplit[0]; // .ToString();

10-06 05:15