0

这应该是不言自明的。我正在尝试检测字符串 foo 的第一个字符是否为负号“-”。这只是一个测试代码来测试它。

 private void button1_Click(object sender, EventArgs e)
    {
        string foo = textBox1.Text;
        bool negativeValue = foo[1]==('-');
        //bool negativeValue = foo[1].Equals ('-');

        if (negativeValue == true)
        {
            label1.Text = "First char is negative !";
        }

        else if (negativeValue == false)
        {
            label1.Text = "First char is not negative !";
        }
    }

即使文本框中的第一个字符是“-”,结果也总是错误的。为什么?

4

2 回答 2

3

C# 中的索引查找是从零开始的。所以你应该打电话:

foo[0] == ('-')

使用1将查找第二个字符。

编辑:作为替代方案(也许更清楚),您始终可以使用:

foo.StartsWith("-")

不管你有多醉,这应该有效。:)

(此外,如果您想避免用户输入中出现过多/意外的前面空格,请考虑修剪文本输入)

于 2013-07-14T13:57:31.353 回答
2

您使用了错误的索引1。实际上您指的是第二个字符

采用0

 bool negativeValue = foo[0]==('-');
于 2013-07-14T13:58:38.330 回答