Frage Java-Rätsel

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Space Vampire

Senior HTML'ler
19 Mai 2009
1.781
31
48
Claudia Colonia
www.space-vampire.de
#1
Kurz umrissen. Es handelt sich um ein Rätsel, das ich lösen möchte.
Ich habe Base64-Code entschlüsselt und erhalte eine absichtlich fehlerhafte Java-Routine, in der 5 Fehler versteckt sind. Ich finde aber, je nachdem wie man es auslegt, nur zwei bis vier. Genau genommen 4 fehlende Zeichen.

Der fehlerhafte Code sieht direkt nach Entschlüsselung so aus
Code:
public class koordinatenrechner {
  /*
   * Gut, hier bist Du richtig.
   * Finde nun die fünf Fehler und führe das Programm aus.
   */


  public static void main(String[] args) {

    long n = 219885876280

    int c = 0b10;
    String s = "

    for (int i=4; i<5; i++)
    {
      int z = (int) n & 255 - 48;
      n = n >> 7;
      s += (char)(0x30 + (z+c)%10);
    }

    if (args.length > 0 && "zeig's mir".equals(args[0])) {
      System.out.println(s);
      System.out.println("Chaka! Den letzten Schritt schaffst Du selbst.");
    }

  }

}
Nachdem ich den Code einmal compiliert habe, habe ich alle Fehlermeldungen durch folgende Änderungen in Zeile 10 und 13 beseitigt.
Code:
public class koordinatenrechner {
  /*
   * Gut, hier bist Du richtig.
   * Finde nun die fünf Fehler und führe das Programm aus.
   */


  public static void main(String[] args) {

    long n = 219885876280L;

    int c = 0b10;
    String s = "";

    for (int i=4; i<5; i++)
    {
      int z = (int) n & 255 - 48;
      n = n >> 7;
      s += (char)(0x30 + (z+c)%10);
    }

    if (args.length > 0 && "zeig's mir".equals(args[0])) {
      System.out.println(s);
      System.out.println("Chaka! Den letzten Schritt schaffst Du selbst.");
    }

  }

}
Die Fehlermeldungen sind nun weg. Aber es wird auch leider nichts ausgegeben. Hat jemand eine Idee?
Nach meinen Informationen sollten da am Ende ein paar ASCII-Blöcke herauskommen.

Vielen Dank schon mal. :)
 

Brodi

Neues Mitglied
8 Juni 2018
3
0
1
30
#2
Es wird nichts ausgegeben weil die if Bedingung am Schluss nicht "wahr" ist. Darum werden die Codes darin nicht ausgeführt und du bekommst keine Outputs.

Entferne die if-Bdingung oder ändere sie zum Beispiel so, dann siehst du was in deiner Ausgabe:

if (s.length > 0 ) { //ist der String s grösser als 0, dann führe denn Code in der if-Conditions aus
System.out.println(s);
System.out.println("Chaka! Den letzten Schritt schaffst Du selbst.");
}