mardi 20 octobre 2015

caesercipher( unable to work if method has to cycle through alphabets)

for the given caesercipher method, it seems to be functioning properly as long as shifted letter is not greater than 'z'(for lowercase) and 'Z' for uppercase. Having gone over my code, it seems to me that the first two if blocks are not doing anything. What may be the issue?

    public static String caeserEncrypt(String originalMessage, int shift){
   String finalMessage = " ";  
   int length = originalMessage.length();
   for(int i= 0;i<length;i++){


     char shiftedletter = (char)((int)(originalMessage.charAt(i))+shift);

     if((int)shiftedletter>(int)'z'){
      shiftedletter = (char)((int)(originalMessage.charAt(i))-(26-shift));
     }
     else{
      shiftedletter= (char)((int)(originalMessage.charAt(i))+shift);
     }
     if((int)shiftedletter>(int)'Z'){
       shiftedletter= (char)((int)(originalMessage.charAt(i))-(26-shift));
     }
     else{
       shiftedletter= (char)((int)(originalMessage.charAt(i))+shift);
     }
     if((int) 'A' <= (int) (originalMessage.charAt(i))   && (int)(originalMessage.charAt(i)) <= 'Z'){
        shiftedletter= (char)((int)(originalMessage.charAt(i))+shift);
     }
     else{
      shiftedletter= originalMessage.charAt(i);
     }
     if((int) 'a' <= (int)(originalMessage.charAt(i)) && (int)(originalMessage.charAt(i)) <= 'z'){
        shiftedletter= (char)((int)(originalMessage.charAt(i))+shift);
     }
     else{
      shiftedletter= (char)(originalMessage.charAt(i));
     }

     finalMessage = finalMessage + shiftedletter;


   }
   return finalMessage;
  }

Aucun commentaire:

Enregistrer un commentaire