Char与字符串不兼容

时间:2014-02-17 06:13:33

标签: java string encryption char

我必须创建一个解密消息的程序: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);
        }
    }
}

5 个答案:

答案 0 :(得分:2)

  

String char数组。

char数组应该由各个char元素组成。不是一整串。

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

应该是

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

或轻松

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

快速浏览一下,你可以使用

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

答案 4 :(得分:0)

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

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);

}

}