【问题标题】:Check if string in upper case [duplicate]检查字符串是否为大写[重复]
【发布时间】:2019-06-21 06:00:05
【问题描述】:

我想检查我的字符串是否包含所有大写值,因为我正在使用下面的代码,但它对于案例 1 没有按预期工作,仅适用于案例 2。

案例一

string myString = "SWEET POTATO";
myString.All(char.IsUpper)

案例 2

string eval = "POTATO";  
eval.All(char.IsUpper)

它没有给我任何错误,但我希望在这两种情况下它都会返回 true,因为在这两种情况下,字符串值都是大写字母

【问题讨论】:

  • 因为您的 case1 在 SWEET 和 POTATO 之间包含 space
  • 试试myString.Where(char.IsLetter).All(char.IsUpper)

标签: c#


【解决方案1】:

您可以将您的字符串转换为大写并检查 eval:

string myString = "FOO BAR"
if (myString.ToUpper() == myString) {
    // your handling
}

【讨论】:

  • 在回答问题时这是个坏主意!请不要为了检查字符串是否全部大写而创建垃圾。
  • @AlexeiLevenkov,感谢您的评论,但请您详细说明这里是什么垃圾。
  • @PrasadTelkikar string created as result of myString.ToUpper() 在该行之后不再被引用,并且必须稍后进行垃圾收集......这对于小字符串的一次性操作可能是可以的,但很快就会变成如果在大型/长时间运行的系统中使用这种类型的编码,则会出现问题。
猜你喜欢
  • 2017-12-24
  • 2014-08-13
  • 2014-03-26
  • 2018-06-13
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
相关资源
最近更新 更多