c# - String.Split() 返回空值

标签 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();

我现在只需要获取 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 其他货币名称”

您可以使用 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();

关于c# - String.Split() 返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12185572/

相关文章:

java - 关于java中split()的使用问题

r - 用点分割线串并在 R 中分配新的线段 ID

c# - 在 C# 中随机 "sort"(Shuffle) 整数列表的最有效方法

c# - 表中最后一条记录的ID

c# - 没有 Bootstrap 的 Blazor Material

r - 如何分割数据框?

c# - 如何使用谓词在 C# 中创建扩展方法

C++ Array of Arrays,分别定义部分

javascript - 如何替换 ../../为 d :/in my ajax response in JavaScript?

python - 如何将此 python 打印函数的每一行写入字符串列表?