【问题标题】:loop that checks every char in a string检查字符串中每个字符的循环
【发布时间】:2015-04-14 18:03:26
【问题描述】:

我正在制作一个很酷的东西,可以制作一封密信,您可以将其发送给朋友,但我遇到了一些问题。我正在尝试对字符串中的每个字符进行 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

【问题讨论】:

    标签: c# string


    【解决方案1】:

    我不知道你想做什么: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' 用于字符

    【讨论】:

      【解决方案2】:

      使用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
              }
      
          }
      
       }
      

      【讨论】:

        【解决方案3】:

        我发现您的代码有两处错误。您收到错误的原因是因为您在 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')
                {
        
                }
            }
         }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-06
          • 1970-01-01
          • 2023-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-05
          • 1970-01-01
          相关资源
          最近更新 更多