c# - 如何将每个句子的首字母大写?

标签 c# string

我知道如何将每个单词的首字母大写。但我想知道如何在 C# 中将每个句子的首字母大写。

最佳答案

这不一定是一个微不足道的问题。句子可以以许多不同的标点符号结尾,而这些相同的标点符号并不总是表示句子的结尾(像 Dr. 这样的缩写可能会带来一个特殊的问题,因为它们可能有很多)。

话虽如此,通过使用正则表达式查找句末标点符号后的单词,您或许可以获得“足够好”的解决方案,但您必须添加很多特殊情况。逐个字符或逐字处理字符串可能更容易。您仍然需要处理所有相同的特殊情况,但这可能比尝试将其构建到正则表达式中更容易。

语法和标点符号有很多奇怪的规则。您提出的任何解决方案可能都无法将它们全部考虑在内。需要考虑的一些事项:

  • 句子可以以不同的标点符号结尾 (. ! ?)
  • 一些结束句子的标点符号也可以用在句子中间(例如 Dr. Mr. e.g. 等缩写)
  • 句子可以包含嵌套的句子。引用可能会提出一个特定的问题(例如,他说,“这是一个难题!我想知道,”他若有所思地说,“它是否可以解决。”)

关于c# - 如何将每个句子的首字母大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2784588/

相关文章:

java - 在 for 循环中有返回的方法缺少返回语句错误

循环遍历带有全局计数器的 C 数组

c# - 从 VirtualMachineScaleSetResource 获取网络接口(interface)

c# - EF Core - 我们可以在包含的项目列表中调用 Include 吗?

php - 有没有办法在 PHP 双引号字符串中使用函数?

java - 使用 Map<String, Map<String, Long>> 写入文件时出现问题

c# - 正则表达式替换可变长度字符串中的所有字符

c# - 我应该违反 SOLID 中的 S 还是应该违反 DRY 原则?

c# - 简单的从 gridview 在 asp.net web 应用程序中选择一行

c# 使用 System.Timers 时取消任务