【问题标题】:IndexOf and \ characterIndexOf 和 \ 字符
【发布时间】:2018-10-03 12:23:34
【问题描述】:

我在尝试在某些 string 中查找 \ 字符时遇到问题。

我有一个像这样的string

01-TN070340000000CHEXBSPT\nTapón Galvanizado Ø3/4\" Cabeza Hexagonal. Rosca BSPT
01-TN071000000000CHEXBSPT\nTapón Galvanizado Ø1\" Cabeza Hexagonal. Rosca BSPT"
05-CBPA0010002000-002\nConjunto Aislador BT 2000. Cerámica Blanca Pasante 1 Kv. 2000A. Genérico. Ferretería Estañada. 

我所需要的只是剪切字符串以在\n 之前获取字符串部分,但问题是IndexOf() 总是返回-1

接下来,我尝试了以下方法:

int index;
string Articulo = "01-TN070340000000CHEXBSPT\nTapón Galvanizado Ø3/4\" Cabeza Hexagonal. Rosca BSPT";
index = Articulo.indexOf('\\'); // -1
index = Articulo.indexOf("\\n"); // -1
index = Articulo.indexOf(@"\n"); // -1

我应该如何获取包含\ 字符的子字符串的起始位置?

【问题讨论】:

  • 只使用 IndexOf('\n') 因为 \n 就像一个字符
  • @Shmosi 非常感谢,我不知道这就像一个字符,我应该删除这个问题吗?或者它可能对某人有用?
  • @JuanSalvadorPortugal 离开它,也许其他人会需要它:) 我发表我的评论作为答案,请接受它
  • @Shmosi 当然!又来了
  • 这就是我们来这里的目的:)

标签: c# format substring


【解决方案1】:

您应该使用.IndexOf('\n'),因为\n 被当作一个字符处理。

您的一个问题是使用@ 导致结果不是换行符,而是\n 作为两个字符,与\\ 相同。

这也是您无法在字符串中仅找到\ 的原因,因为它与n 密不可分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多