确定字符串的第一个字符是高还是低

use*_*611 1 c# string char

我正在尝试确定"句子"字符串的第一个字符是否为大写字母.程序运行正常,但测试运行会给出数组索引超出范围的错误.我无法理解这个问题.

public class CapitalOrNot
{
    public static void Main()
    {
        string sentence = "Asdafasda";
        string UpOrLow = UpperOrLower(sentence);
        Console.WriteLine("First char is " + UpOrLow);
    }

    public static string UpperOrLower(string mj)
    {
        if (char.IsUpper(mj[0]))
        {
            mj = "upper";
        }
        else mj = "lower";

        return mj;
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*lis 5

你应该检查字符串是否为空:

 public static string UpperOrLower(string mj)
 {
     if (string.IsNullOrEmpty(mj))
         return "bad input";

     return char.IsUpper(mj[0]) ? "upper" : "lower";
 }
Run Code Online (Sandbox Code Playgroud)