c#:没有预定义函数的字符串长度

时间:2014-04-25 20:08:49

标签: c#

我正在编写一个代码来查找c#中字符串的总长度。 代码如下

class Program
    {
        static void Main(string[] args)
        {
            string str = "Amit Kumar";
            int c = 0;
            for(int i = 0; str[i]!="\n"; i++)
            {

                c++;
            }
            Console.WriteLine(c);
            Console.ReadLine();
        }
    }

但是显示!= 运算符不能应用于char或字符串类型的操作数。 你能解决我的问题

3 个答案:

答案 0 :(得分:5)

您无法使用!=将字符串与char进行比较,如错误中所述。所以请改用'\n'。但无论如何,你的字符串不包含换行符,永远不会终止。

我们可以通过一些修改使您的代码正常工作。使用foreach循环遍历字符串中的字符。

class Program
    {
        static void Main(string[] args)
        {
            string str = "Amit Kumar";
            int c = 0;
            foreach(char x in str)
            {
                c++;
            }
            Console.WriteLine(c);
            Console.ReadLine();
        }
    }

我希望这只是为了教育,因为有built in functions告诉你字符串的长度。

答案 1 :(得分:1)

您需要以下代码:

class Program
    {
        static void Main(string[] args)
        {
            string str = "Amit Kumar";
            int c = 0;
            foreach(char x in str)
            {
                if (str[i] != '\n')
                  c++;
            }
            Console.WriteLine(c);
            Console.ReadLine();
        }
    }

答案 2 :(得分:1)

mason's answer完全没问题,但这里有另一种选择:

void Main()
{
    string str = "Amit Kumar";
    int c = 0;
    while(str != "")
    {
        str = str.Substring(1);
        c++;
    }
    Console.WriteLine(c);
    Console.ReadLine();
}

此方法连续删除字符,直到它留下空字符串,然后打印删除的字符数。但只是为了好玩,这可以改写为

void Main()
{
    string str = "Amit Kumar";
    int c = 0;
    while(str.Substring(++c) != "") /* do nothing */;
    Console.WriteLine(c);
    Console.ReadLine();
}