获取字符的索引

本文关键字:索引 字符 获取 | 更新日期: 2023-09-27 18:14:59

我有一个问题,得到一个字符串的字符'-'的索引。让我解释一下我的问题。首先,我必须从文本文件中读取一行。文本文件中唯一的一行是"Beta = 62.5 * (Sigma - Delta)/125"

StreamReader rdr = new StreamReader(openPath, Encoding.Default); 
while (rdr.Peek() != -1)
{
     string strInput = rdr.ReadLine();
}

那么我需要得到char '-'的索引

int col = strInput.IndexOf('-');

在上面一行之后'col'等于-1。但是正如你所看到的,'-'字符是在上面提到的从文本文件中读取的字符串中。我不明白为什么-的下标是-1。帮助我…

获取字符的索引

这两个字符不一样。看看它们的长度:

(这被称为en-dash,等于ASCII字符N的宽度)

-

(这是一个普通的ASCII连字符,或减号)

修改你的索引,使用连字符(-)而不是连字符(-),你应该得到正确的结果。

编辑:感谢sixlettervariables为正确的术语

您不是在搜索相同的字符,您正在搜索的字符应该是'–'而不是'-'

试试他的台词:

int col = a.IndexOf('–');

int col = strInput.IndexOf('-');:

之前(暂时)添加一行代码:
System.Diagnostics.Debug.Assert(String.Equals(strInput, "Beta = 62.5 * (Sigma – Delta) / 125");