我正在班上做作业,问题是:
创建一个方法,将其命名为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',我将不胜感激。
答案 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();
}