【问题标题】:c# substring not found although the substring existsc# substring not found 虽然子字符串存在
【发布时间】:2012-01-27 14:35:44
【问题描述】:

我的字符串看起来像

string1 = "~01301~^~DATA1,DATA2 DATA3~^15.87^717^0.85^81.11^2.11^0.06^0"

string2 = "~01341~^~DATA3,DATA2 DATA1 DATA4~^15.87^717^0.85^81.11^2.11^0.06^0"

string3 = "~01347~^~DATA1 DATA2,DATA3~^15.87^717^0.85^81.11^2.11^0.06^0"

等等。

在这些字符串中,我需要找出哪些字符串包含“DATA1”子字符串。在 C# 中, contains - indexOf - lastIndexOf 方法无法在 string1 中找到 DATA1,但它们都在 string2 和 string3 中找到 DATA1。

这可能是什么原因?第一个 DATA1 用波浪号和逗号包围,但我想这些不应该影响还是我错了?

编辑: 代码的相关部分是微不足道的,这就是我没有发布它的原因。但这里仍然是代码的相关部分:

while((line = isoFileReader.ReadLine())!=null)
{
    if (line.IndexOf(input)!=-1)
    {
        matchList.Add(line);
    }
}

while((line = isoFileReader.ReadLine())!=null)
{
    if (line.Contains(input))
    {
        matchList.Add(line);
    }
}

【问题讨论】:

  • 贴出你的代码,否则很难说
  • 你能显示你用于 lastIndexOf 的确切代码吗?
  • 你能发布你使用 String.Substring/IndexOf 的确切代码吗?
  • 在调试器中查看string1,仔细分析字符,你可能会发现一些你看不到的隐藏字符。
  • 刚刚在我的身上测试过,它按预期工作。该错误必须在您的代码中的其他位置。您可能需要显示更多代码。

标签: c# string contains indexof


【解决方案1】:

很可能是您拨打电话时出现的问题。 string1.Contains("DATA1");将为您指定的字符串返回 true。

Contains 区分大小写,因此您可能不小心输入了一个字母的错误大小写,或者在之前/之后添加了一个空格。

【讨论】:

  • 已解决,感谢提示。输入字符串在结尾或开头都有空格。修剪输入解决了,小错误太烦人了=)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 2015-07-27
  • 2015-11-18
  • 2021-10-11
  • 2017-07-11
  • 1970-01-01
相关资源
最近更新 更多