如何解决我的C#For Loop和If语句怎么了?
|int LetterCount = 0;
string strText = \"Debugging\";
string letter;
for (int i = 0; i <strText.Length; i++)
{
letter = strText.Substring(0,9);
if(letter == \"g\")
{
LetterCount++;
textBox1.Text = \"g appears \" + LetterCount + \" times\";
}
}
因此,我正在做本教程的事情,而我在本练习中停留了大约4个小时。而且我无法弄清楚我的For Loop出了什么问题。
练习的目的是使我的程序能够告诉我调试一词中有多少g。但是你可能想通了。无论如何,我什至不确定我是否有正确的代码告诉我,因为我认为我需要更改For循环的第二部分(i <)。
但是我的问题是它根本不注册\“ if letter == \” g \“ \”。因为根据我的本地窗口,它说出letter = Debugging,这使我认为g应该在我的程序上注册24次,所以我认为(因为str.length
是9个字母长吗?)但是无论如何它都注册为0我做的事。
解决方法
您正在提取9个字符的字符串。它永远不会等于\“ g \”(只有一个)。这是我的处理方式。
int count = 0;
foreach (char c in strText)
{
if (c == \'g\')
count++;
}
使用for循环:
for (int i = 0; i < strText.Length; i++)
{
if (strText[i] == \'g\')
count++;
}
, 看看string.Substring(x,y)的文档。
基本上:
letter = strText.Substring(0,9);
不给你一封信。每次通过它都会给您字符串strText
的所有9个字符。您可能要考虑使用变量i
作为传递给Substring的值之一。
(由于您似乎想理解的原因,我故意没有给您完整的答案,因此,如果我给出的指针不能帮助您,请告诉我,我将扩大我的答案= )
, 尝试这个:
for (int i = 0; i <strText.Length; i++)
{
if(strText[i] == \'g\')
{
LetterCount++;
}
}
textBox1.Text = \"g appears \" + LetterCount + \" times\";
问题是当您与\“ g \”比较时,您正在查看整个字符串。通过指定索引,您可以告诉它查看字符串中的特定字符。另外,我删除了您的子字符串,因为它似乎没有做任何事情。
, 您在for
循环中根本没有使用i
。
你的意思是
letter = strText.Substring(i,1);
?
, 好吧,您正在获取长9个字符的子字符串,并将其与\“ g \”进行比较。不会相等。
你应该试试:
letter = strText.Substring(i,1);
, 因为String.Substring(int,int)接受两个参数:偏移量和接受量。
在您的情况下,“ 12”将简单地将字母的值分配给“调试”。如果要单独检查每个字母,则需要写letter = strText.Substring(i,1)
。
, 您可能正在寻找这样的东西:
int LetterCount = 0;
string strText = \"Debugging\";
string letter;
for (int i = 0; i <strText.Length; i++)
{
letter = strText.Substring(i,1);
if(letter == \"g\")
{
LetterCount++;
textBox1.Text = \"g appears \" + LetterCount + \" times\";
}
}
, letter = strText.Substring(0,9);
此时,由于要使用整个字符串,因此\'letter \'的值为\“ Debugging \\”。
尝试使用letter = strText[i]
,以便隔离单个字母。
, @Rob怎么说。
尝试这样的事情:
int gCount = 0;
string s = \"Debugging\";
for ( int i = 0; i <strText.Length; i++)
{
if ( s[i] == \'g\' ) ++gCount ;
}
textBox1.Text = \"g appears \" + gCount+ \" times\";
, namespace runtime
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender,EventArgs e)
{
int lettercount = 0;
string strText = \"Debugging\";
string letter;
for (int i = 0; i < strText.Length; i++)
{
letter = strText.Substring(i,1);
if (letter == \"g\")
{
lettercount++;
}
}
textBox1.Text = \"g appear \" + lettercount + \" times\";
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。