我做了一件很酷的事情,写了一封你可以寄给朋友的秘密信,但我有一些问题。我试图在字符串字符串中的每个字符串上进行for循环,因此它可以检查字母是否是某个值,然后更改它。
这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
string translatedtex = richTextBox1.Text.ToString();
int indexletter = translatedtex.Length;
for (int item = 0; item < indexletter; item++)
{
char normal_a = 'a';
// if(translatetext[item] = normal_a)
// { //do something
// }
if(translatetext[item] = "a")
{ //do something
}
}
}
我已尝试将引号""
与''
或=
之间的值检查切换为==
,但没有任何帮助。
它总是显示此错误:
- 属性或索引器string.this [int]无法分配给 - 它只读
- 不能隐式将char类型转换为bool / string
答案 0 :(得分:2)
我不知道你想做什么:D
但现在语法正确
private void button1_Click(object sender, EventArgs e)
{
string translatedtext = richTextBox1.Text.ToString();
int indexletter = translatedtext.Length;
for (int item = 0; item < indexletter; item++)
{
char normal_a = 'a';
// if(translatedtext[item] == normal_a)
// { //do something
// }
if(translatedtext[item] == 'a')
{ //do something
}
}
}
为了你的一般知识:
“==”用于比较; “=”用于分配值
“a”用于字符串; 'a'用于表示
答案 1 :(得分:1)
使用foreach
可节省您的时间和代码。
private void button1_Click(object sender, EventArgs e)
{
string translatedtext = richTextBox1.Text;//Text property is already a string
//no need to add ToString()
foreach(char character in translatedtext)
{
if(character == 'a')
{
//Do something with character
}
}
}
答案 2 :(得分:0)
我发现有两件事你的代码出错了。您收到错误的原因是因为您在if语句中使用了'='而不是'=='。第二件事是错误的。你不需要在文本框上使用ToString(),因为它已经是一个字符串。您也可以使用foreach循环而不是for,因为字符串可以隐式转换为字符数组。
private void button1_Click(object sender, EventArgs e)
{
string translatedtext = richTextBox1.Text;
foreach(char character in translatedtext)
{
// '==' is used for comparison, '=' is used to assign
// make sure you use '==' to compare in if statements
if(character == 'a')
{
}
}
}