我在获取角色的索引时遇到问题' - '一串。让我解释一下我的问题。 首先,我必须从文本文件中读取一行。文本文件中唯一的一行是" 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作为' - '的索引。帮助我...
答案 0 :(得分:2)
这两个字符不一样。看看它们的长度:
–
(这称为en-dash,等于ASCII字符N的宽度)
VS
-
(这是正常的ascii连字符,或减号)
修改indexof使用en-dash( - )而不是连字符( - ),你应该得到正确的结果。
编辑:感谢六个方面的正确术语
答案 1 :(得分:1)
您没有搜索相同的字符,您要搜索的字符应为'–'
而不是'-'
尝试他的路线:
int col = a.IndexOf('–');
答案 2 :(得分:0)
在int col = strInput.IndexOf('-');
:
System.Diagnostics.Debug.Assert(String.Equals(strInput, "Beta = 62.5 * (Sigma – Delta) / 125");