【问题标题】:String Information Class字符串信息类
【发布时间】:2015-12-22 18:42:27
【问题描述】:

我正在寻找一些相当具体的东西,但我真的不知道该怎么称呼它。让我解释一下:我需要一个小类/结构,它接受一个字符串并收集有关它的信息。所以我将我的字符串传递给构造函数,它“搜索”字符串,收集字符串有多少个字符,有多少个字母,有多少个数字,多少个小写字母,多少个大写字母,它有多长等。我正要自己开发这个,但想知道它是否已经存在于 .NET 框架中。

谢谢。

【问题讨论】:

  • 我不相信有一个类/结构可以完全满足您的要求。但是,收集信息所需的所有方法都已经存在,并且易于使用。
  • .Net 不提供此功能。您将需要开发一个特定的类来提供此信息,或者开发一系列字符串扩展。例如NumberCharCount()、UpperCharCount() 等

标签: c# .net string


【解决方案1】:

不,这不存在。但是你自己写很简单,你可以用一点 LINQ 和 char 扩展来做你需要的一切:

var count = str.Count();
var letters = str.Count(char.IsLetter);
var numbers = str.Count(char.IsDigit);
var lowers = str.Count(char.IsLower);
var uppers = str.Count(char.IsUpper);
//etc...

【讨论】:

  • 如果一个人不关心代理对和各种组合字符就足够简单了......对于更严肃的代码TextElementEnumerator可能需要。
【解决方案2】:

.NET Framework 中不存在这样的类,它可以为您提供所需的所有必要细节。您需要自己创建它。

在查看您正在寻找的字符串的详细信息后,我的假设是您可能正在寻找Verifying Password Strength

【讨论】:

  • 不完全是,但你非常接近我需要这个。猜对了!
【解决方案3】:

看看Char 结构。 它有很多静态函数,如Char.IsDigitChar.IsNumberChar.IsLower

【讨论】:

    【解决方案4】:

    除了 System.String 和 System.Char 类来收集信息外,您还可以使用 System.Globalization 命名空间中的类,例如 StringInfo、TextInfo、CharUnicodeInfo 等。

    此外,您可以在正则表达式中使用Character Classes。例如,Unicode Categories:变音符号、标点符号等。或命名为 Blocks 的 Unicode:IsGreek、IsCyrillic 等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 2013-05-20
      相关资源
      最近更新 更多