【问题标题】:Capitalize a single 'char'acter in C#?在 C# 中将单个“字符”大写?
【发布时间】:2012-05-12 14:24:33
【问题描述】:

有没有一种“简单”的方法可以将单个 char 类型的值大写?

这会起作用,但感觉很麻烦并且通常是错误的:

var ch = 'a';
var cap = ("" + ch).ToUpper()[0];
cap.Dump(); // (in LINQPad) => 'A'

注意事项:

  1. 选择 "" + ch 而不是 ToString() 是因为 ReSharper 对我大喊大叫,因为我没有用后者指定文化……无论如何,ch.ToString().ToUpper()[0] 感觉一样麻烦。
  2. 为了全球化,不能只“加 32”;我不相信有任何一个char 在大写时会变成代理对。

谢谢,

【问题讨论】:

  • “加 26”在 ASCII 中甚至不是一个选项:您需要减去 32。

标签: c# char capitalize


【解决方案1】:
Char.ToUpper(ch)

应该做的工作。

【讨论】:

  • 太棒了。我只看 [intellisense] 实例方法......应该有 RTFM'ed。
  • 我有时也会落入同样的陷阱。通常值得查看熟悉类型的静态方法,看看有什么可用。在这种情况下,我在 Reflector 中搜索了 ToUpper 方法以了解它们在内部是如何工作的,但却找到了这个方法。
【解决方案2】:

试试Char.ToUpper()

var a = 'a';
a = Char.ToUpper(a);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多