【问题标题】:How can I capitalize the first letter of each sentence in C# using char?如何使用char在C#中将每个句子的第一个字母大写?
【发布时间】:2017-03-24 03:32:49
【问题描述】:

句子大写:

private string SentenceCapitalizer(string input)
{
 char delim = '.';
 string letter1;
 string[] tokens = input.Split(delim);
 foreach (string phrase in tokens)
 {
   letter1 = phrase.Remove(0);
   letter1.ToUpper();
 }
 return input;
}

请记住,这只是其中一种方法。

【问题讨论】:

标签: c# char delimiter toupper


【解决方案1】:

首先,查看ToUpper() 的签名,注意它返回一个字符串。这不会修改您调用它的字符串;而是从该操作返回一个新的字符串结果。

在您的情况下,您已经有了这些短语。您可以使用phrase[0]phrase.First() 获取短语的第一个字符。您还应该查看Substring,它为您提供了字符串中的一系列字符。

将所有这些放在一起,您可以执行以下操作:

phrase = phrase[0].ToString().ToUpper() + phrase.Substring(1);

这样做是从phrase 中获取第一个字符并将其从字符转换为字符串,这就是您需要调用的字符串ToUpper(),然后使用Substring 将其与短语的其余部分连接起来位置 1(这是第二个字符)并将其分配回短语。

【讨论】:

  • 我会坚持使用Substring - 如phrase = phrase.Substring(0, 1).ToUpper() + phrase.Substring(1);
  • 这也很好,对某些人来说可能更明显的是完整的字符串正在被考虑 - 更多的自我记录。有十几种完成任务的方法,很多都归结为风格。我希望避免回答“最佳方式”的问题,而是旨在解释行为,以便清楚为什么代码会这样做以及如何更独立地找出答案。
猜你喜欢
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 2019-09-04
  • 2011-07-20
  • 2012-06-23
  • 1970-01-01
相关资源
最近更新 更多