获得字符串长度不会起作用

时间:2016-04-15 13:52:11

标签: c# string

我使用下面的代码找出给定字符串的长度:

string foo = "Welcome to stack overflow";
int strlen;

for (int i=0; i<foo.length; strlen++){}

Console.WriteLine(strlen.ToString());

但代码永远不会离开循环。

4 个答案:

答案 0 :(得分:3)

嗯,这很奇怪。

我不明白你的逻辑,你已经有了字符串长度,为什么要用循环将它应用到另一个int?

但是,嗯,我该判断谁?

你的循环问题在于你没有增加i的价值 这样做:

for (int i=0; i<foo.Length; i++)
{
     strlen++;
}

您可以删除循环并对代码执行此操作:

string foo = "Welcome to stack overflow";

Console.WriteLine("String length: " + foo.Length.ToString());

修改

如评论中所述:

  

length属性必须首字母大写,因为C#区分大小写。 - Jon Skeet

答案 1 :(得分:1)

你永远不会增加“我”所以“i&lt; foo.length”将永远是真的

答案 2 :(得分:1)

您应该遍历i,而不是strlen

for (int i=0; i<foo.length; i++){}

答案 3 :(得分:1)

您有一个拼写错误foo.Length,而不是foo.length)和两个错误

  1. 不要忘记在本地变量声明(0)上分配int strlen = 0
  2. 不要忘记增加计数器(i++
  3. 类似的东西:

    string foo = "Welcome to stack overflow";
    
    // error: assign 0 to strlen
    int strlen = 0;
    
    // Typo: foo.Length instead of foo.length
    // error: do not forget to increment "i" as well as "strlen"
    for (int i = 0; i < foo.Length; strlen++, i++) {}
    
    // 25
    Console.WriteLine(strlen.ToString());
    

    测试:

    // 25
    Console.WriteLine(foo.Length);