2014-02-17 74 views
2

我要创建一个解密消息的程序:mmZ\dxZmx]Zpgy 加密方法是ASCII码。 这应该是我所需要的,但即时得到不兼容的类型错误 这里:char与字符串不兼容

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

回答

2

串字符数组。

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

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

应该是

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

或容易

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

哦,我的天啊,谢谢你! (我一定很累) – caustr01

+0

@ caustr01没问题。发生在每个程序员身上。快乐的编码。 –

1

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

要将其转换为charArray,使用:

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

谢谢你做到了! – caustr01

+0

欢迎来到java – user2472706

+0

@ caustr01不客气 – PopoFibo

1

你的需要添加toCharArray因为这是一个字符串,你想字符数组

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

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

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

你正在创建字符数组,但分配字符串it.It会给你的错误,但如果你只是创建一个字符串,并把它作为参数传递给方法,那么你的方法应该是这样的

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

} 

}