C#如何将字符串中的第一个字母作为方法中的字符串返回?

时间:2017-03-24 08:01:34

标签: c# methods char return

我正在班上做作业,问题是: 创建一个方法,将其命名为A,并使其返回字符串中的第一个字母。

这是我的代码:

{
    String f = "flying";
    String str = A(f);

    Console.WriteLine(str);

    Console.ReadKey();
}


public static string A(string s) 
{
    string first = s.Substring(0, 1);
    return first;       
}

但这是不可接受的,因为我正在返回string而不是char。我无法在任何地方找到如何以char的形式返回飞行中的字母'f',我将不胜感激。

4 个答案:

答案 0 :(得分:13)

基本上一个字符串是一个字符数组,所以如果你把它当成一个并使用[ ] operator访问第一个位置:

char c = s[0];

你会得到一个字符。

如果你的字符串是either null or empty,这当然会导致问题。所以你真的应该检查一下这些情况:

char c = !String.IsNullOrWhiteSpace(s) ? : s[0] :  ' ';

另一种可能性就是使用Convert.ToChar方法将其转换为char。这里再次检查是必要的

public static char A(string s) 
{
    return !String.IsNullOrWhiteSpace(s) ? Convert.ToChar(s.Substring(0, 1)) : ' ';
}

旁注:如果您想知道?的内容,请查看?: Operator (C# Reference)

正如Ehsan Sajjad使用First指出的那样:

return !String.IsNullOrWhiteSpace(s) ? s.First() : ' ';

答案 1 :(得分:2)

您可以将字符串索引为数组,因为它只是一个字符数组。

public char GetFirstChar(string text)
{
    return text[0];
}

但是你应该记住,当你有一个空字符串或空字符串时,这将导致异常。这就是解决这个问题的原因。 您可以使用string.IsNullOrEmpty进行此操作。

这看起来像

public char GetFirstChar(string text)
{
    var result = string.IsNullOrEmpty(text) ? ' ' : text[0];
    return result;
}

答案 2 :(得分:0)

还有一个名为ToCharArray()的函数可以调用字符串。从该数组中,您可以获取第一个元素。 MSDN

public static char A(string s) {
    char[] allChars = s.ToCharArray();
    char first = allChars[0];
    return first;
}

答案 3 :(得分:0)

使用Linq:

public static char A(string s)
{
    if (s == null)
        throw new ArgumentNullException("s");

    return s.DefaultIfEmpty(' ').First();
}