Compiler-Fehler public static void zu static String ändern

Vamecruft

Neues Mitglied
Ich soll einen Dezimal in Binärzahlen Converter bauen, jedoch soll der " public static String transformDual(int dec) {" genau so aussehen.
Wenn ich diesen mit public static void ersetze, dann funktioniert der Converter, mit dem String jedoch nicht.
Die Frage ist nun wie fixe ich das mit möglichst wenig Komplexität.

Java:
public class DecimalToDual {

  public static String transformDual(int dec) {

    int Stellen = 0;
    int dec2 = dec;

    while (dec2 != 0) {
      dec2 = dec2 / 2;
      Stellen++;
    }
    int DualArray[] = new int[Stellen];

    for (int i = 0; i < Stellen; i++) {
      DualArray[i] = dec % 2;
      dec = dec / 2;
    }

    for (int i = Stellen - 1; i >= 0; i--) {
      System.out.print(DualArray[i]);
    }
  }

  public static void main(String[] args) {
    int dec = Integer.parseInt(args[0]);
    transformDual(dec);
  }
}
 
Deine Methode soll vermutlich das nicht auf der Konsole ausgeben sondern als Ergebnis zurückgeben.

Also ein return ... - wobei ... dem zusammengesetzten String entsprechen soll.
 
Ich gehe davon aus, dass die Ausgabe der Werte nicht innerhalb der Methode erfolgen soll. Darum gibt es ja den Rückgabewert als String. Also:
Java:
public static void main(String[] args) {
    int dec = Integer.parseInt(args[0]);
    
    String ausgabe = transformDual(dec); // Rückgabewert wird einer Variablen zugewiesen
    System.out.println(ausgabe); // und ausgegeben
    
    // oder
    
    System.out.println(transformDual(dec)); // das Gleiche ohne Variable
}

Noch kurz zu Methoden mit Rückgabewerten, das geht so:
Java:
public static String giveMeAString() {
    String aString = "Hallo Welt!";
    
    // vielleicht noch mehr Code
    
    return aString; // gibt die Variable als Ergebniswert der Methode zurück
}
 

Zurück
Oben