计算字符并运行if语句

时间:2013-10-22 02:37:28

标签: c#

我很感激你花时间阅读这篇文章:)

基本上我试图在字符串大于这么多字符的情况下运行if命令。

所以我运行一堆line.conatins来过滤掉我不想要的东西,但我也想添加一个字符数,所以如果该行少于30个字符,它会过滤掉它。

所以基本上,我在C#visual studio 2008中寻找类似的东西

if (line.contains > 30 characters) 
{
    Run code...
}

我不确定使用正确的语法,谷歌还没有即将推出。

我感谢任何帮助。谢谢,杰森

哇谢谢快速响应的人,但经过大量的反复试验,我想出了这个

int num_count = line.Length;
                    if (num_count > 30) { }

似乎有用

3 个答案:

答案 0 :(得分:3)

string data = "fff"

if (data.Length > 30)
{
 // MAgic stuff here
}

答案 1 :(得分:0)

这应该做你想要的。

            string str = "yourstring";
            int i = str.Length;

下次在确定您想要的东西时,还要尝试发布代码。

答案 2 :(得分:0)

简短而有趣的答案是使用这个属性:

String.Length

你可能想要考虑一下你的性格。 .NET的String类是UTF-16代码单元的计数序列,它键入为Char。 Unicode代码点中有一个或两个UTF-16代码单元,当您逐步执行每个Char时,它很容易计算。在使用两个代码单元的情况下,它们被称为低代理和高代理。

但是请注意,Unicode可以代表变音符号,例如单独的代码点。您可能希望将它们排除在计数之外。

将它们放在一起:

using System.Linq;
...
var test = "na\u0308ive"; // want to count ä as one character
var categoriesNotToCount = new []
{ 
    UnicodeCategory.EnclosingMark,
    UnicodeCategory.NonSpacingMark, 
    UnicodeCategory.SpacingCombiningMark 
};
var length = test
    .Count(c => 
        !categoriesNotToCount.Contains(Char.GetUnicodeCategory(c)) // we just happen to know that all the code points in categoriesNotToCount are representable by one UTF-16 code unit
        & !Char.IsHighSurrogate(c) // don't count the high surrogate because we're already counting the low surrogate 
    );

这一切都归结为你所追求的。如果它是你想要的UTF-16代码单元的数量,那么肯定String.Length是你的答案。