【问题标题】:Char incompatible with string字符与字符串不兼容
【发布时间】:2014-02-17 06:13:32
【问题描述】:

我必须创建一个程序来解密消息:mmZ\dxZmx]Zpgy 加密方式为ASCII码。 这应该是我所需要的,但我得到一个不兼容的类型错误 这里:

char encrypted[]= "(:mmZ\\dxZmx]Zpgy)";

我知道从技术上讲它是一个字符串,但我想不出任何其他方式来做到这一点.. 这是我的全部代码

package decrypt;

public class Decrypt 
{
    public static void decrypt(char encrypted[], int key)
    {
        System.out.println(key + ": ");
        for (int i=0; i < encrypted.length; i++)
        {
            char originalChar = encrypted[i];
            char encryptedChar;
            if ((originalChar -key) < 32)
                encryptedChar = (char) (originalChar - 32 + 127 -key);
            else 
                encryptedChar = (char) (originalChar -key);
            System.out.println(encryptedChar);
        }    
    }

    public static void main(String[] args) 
    {
        char encrypted[]= "(:mmZ\\dxZmx]Zpgy)";    
        for (int i=1; i <=100; i++)
        {
            decrypt(encrypted, i);
        }
    }
}

【问题讨论】:

    标签: java string encryption char


    【解决方案1】:

    字符串一个字符数组。

    char 数组应该由单独的 char 元素组成。不是一个完整的字符串。

      char encrypted[]= "(:mmZ\\dxZmx]Zpgy)";
    

    应该是

    char encrypted[]= {'(',':',.....remaining elements ..};
    

    或轻松

       char encrypted[]= "(:mmZ\\dxZmx]Zpgy)".toCharArray();
    

    【讨论】:

    • @caustr01 没有问题。每个程序员都会遇到。快乐编码。
    【解决方案2】:

    "(:mmZ\\dxZmx]Zpgy)" 是一个字符串。

    要将其转换为charArray,请使用:

    char encrypted[] = "(:mmZ\\dxZmx]Zpgy)".toCharArray();
    

    【讨论】:

      【解决方案3】:

      你必须添加 toCharArray 因为这是一个字符串并且你想要 char 数组

      char encrypted[]= "(:mmZ\\dxZmx]Zpgy)".toCharArray();
      

      【讨论】:

        【解决方案4】:

        快速浏览一下,你可能会用到

        "(:mmZ\\dxZmx]Zpgy)".toCharArray()
        

        【讨论】:

          【解决方案5】:

          您正在创建一个字符数组,但将字符串分配给它。它会给您错误,但是如果您只创建一个字符串并将其作为参数传递给方法,那么您的方法将如下所示

          public static void decrypt(String encrypted,int key){
          System.out.println(key + ": ");
          for (int i=0; i < encrypted.length; i++){
              char originalChar = encrypted.CharAt(i);
              char encryptedChar;
              if ((originalChar -key) < 32)
                  encryptedChar = (char) (originalChar - 32 + 127 -key);
              else 
                  encryptedChar = (char) (originalChar -key);
              System.out.println(encryptedChar);
          
          }
          
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-12-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-02-17
            • 1970-01-01
            相关资源
            最近更新 更多