我正在编写一个代码来查找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或字符串类型的操作数。 你能解决我的问题
答案 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();
}