Here I use a caesar cipher of +3 to decode the messages. Overflow of characters is handled by the modulus operator.

public class CaesarCipher {

  public static String decode (String message) {
    String decoded = "";
    for (int i = 0; i<message.length(); i++) {
      if (message.charAt(i) < 'a' || message.charAt(i) > 'z') {
        decoded += message.charAt(i);
        continue;
      }
      int letter = message.charAt(i)-'a';
      int new_letter = (letter+3)%26;
      decoded += (char)(new_letter+'a');
    }
    return decoded;
  }

  public static void main(String[] args) {

      String message1 = "kfzb gly!";
      System.out.println(decode(message1));

      String message2 = "zlab zlab zlab";
      System.out.println(decode(message2));

      String message3 = "prmbozxifcoxdfifpqfzbumfxifalzflrp";
      System.out.println(decode(message3));
  }
}

CaesarCipher.main(null);
nice job!
code code code
supercalifragilisticexpialidocious