If-Konstrukt verkleinern

Status
Nicht offen für weitere Antworten.

Ocean-Driver

Bekanntes Mitglied
Hallo,


Ich habe folgende Situation: Ich habe zwei JComboBoxen, die einmal das Source und einmal das Target NumberSystem angeben - jetzt hab ich natürlich für jede Situation einen anderen Fall - doch wie könnte ich denn folgendes Konstrukt verkürzen?

Code:
       if(SourceNumberSystem.equals("Binär (2)"))
       {
           if(TargetNumberSystem.equals("Binär (2)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Oktal (8)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Dezimal (10)"))
           {
               
           }
           else if(TargetNumberSystem.equals("DuoDezimal (12) "))
           {
               
           }
           else if(TargetNumberSystem.equals("Hexadezimal (16)"))
           {
               
           }
       }
       else if(SourceNumberSystem.equals("Oktal (8)"))
       {
           if(TargetNumberSystem.equals("Binär (2)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Oktal (8)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Dezimal (10)"))
           {
               
           }
           else if(TargetNumberSystem.equals("DuoDezimal (12) "))
           {
               
           }
           else if(TargetNumberSystem.equals("Hexadezimal (16)"))
           {
               
           }
       }
       else if(SourceNumberSystem.equals("Dezimal (10)"))
       {
           if(TargetNumberSystem.equals("Binär (2)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Oktal (8)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Dezimal (10)"))
           {
               
           }
           else if(TargetNumberSystem.equals("DuoDezimal (12) "))
           {
               
           }
           else if(TargetNumberSystem.equals("Hexadezimal (16)"))
           {
               
           }
       }
       else if(SourceNumberSystem.equals("DuoDezimal (12)"))
       {
           if(TargetNumberSystem.equals("Binär (2)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Oktal (8)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Dezimal (10)"))
           {
               
           }
           else if(TargetNumberSystem.equals("DuoDezimal (12) "))
           {
               
           }
           else if(TargetNumberSystem.equals("Hexadezimal (16)"))
           {
               
           }
       }
       else if(SourceNumberSystem.equals("Hexadezimal (16)"))
       {
           if(TargetNumberSystem.equals("Binär (2)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Oktal (8)"))
           {
               
           }
           else if(TargetNumberSystem.equals("Dezimal (10)"))
           {
               
           }
           else if(TargetNumberSystem.equals("DuoDezimal (12) "))
           {
               
           }
           else if(TargetNumberSystem.equals("Hexadezimal (16)"))
           {
               
           }
       }


Danke schonmal. :)
 

Marco13

Top Contributor
Wo belegst du denn SourceNumberSystem und TargetNumberSystem mit diesen Werten (Strings) ? Es wäre IMHO naheliegend, die einfach als ints zu speichern. Die Methode zum Umwandeln (auf die das ganze vmtl. rausläuft :wink: ) kann man dann generisch schreiben:

Code:
public static String convert(String input, int sourceBase, int targetBase)
{
    return Integer.toString(Integer.parseInt(input, sourceBase), targetBase);
}

System.out.println(convert("101", 2, 10)); // gibt "5" aus
System.out.println(convert("101", 10, 2)); // gibt "1100101" aus
 

Ocean-Driver

Bekanntes Mitglied
Code:
public static String convert(String input, int sourceBase, int targetBase) 
{ 
    return Integer.toString(Integer.parseInt(input, sourceBase), targetBase); 
} 

System.out.println(convert("101", 2, 10)); // gibt "5" aus 
System.out.println(convert("101", 10, 2)); // gibt "1100101" aus


Ok, es geht natürlich auch einfach - hät ich das nur gewusst. :D

Ich hab ne ganze Klasse für alle Möglichen Converts gemacht, super danke!
 
S

SlaterB

Gast
ansonsten hättest du zumindest den Strings per Map eine Zahl von 0-5 zuordnen und dann ein kürzeres switch-case verwenden können
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
W for Schleife in allgemeingültiges Konstrukt aus Stream und Lambdas Java Basics - Anfänger-Themen 6
G Was ist das für ein Konstrukt Java Basics - Anfänger-Themen 7
G Wie nennt man dieses Konstrukt Java Basics - Anfänger-Themen 3
S Datentypen geignetes java konstrukt gesucht Java Basics - Anfänger-Themen 5
E Was ist das für ein Java Konstrukt (e.getDistance() < 200 ? 0 : 8) Java Basics - Anfänger-Themen 2
F Seltsames Konstrukt? Java Basics - Anfänger-Themen 5
B Was ist das für ein Konstrukt? Java Basics - Anfänger-Themen 2
P if.else.Konstrukt Java Basics - Anfänger-Themen 12
P switch-case Konstrukt auch mit case i < 6: s = 6 ? Java Basics - Anfänger-Themen 10
G Wie nennt man dieses Konstrukt: Vector<Object> Java Basics - Anfänger-Themen 2
T Array verkleinern Java Basics - Anfänger-Themen 2
O Array verkleinern, vergrößern Java Basics - Anfänger-Themen 1
J Methode verkleinern Java Basics - Anfänger-Themen 16
N JavaFX - (Controller) - Klasse verkleinern Java Basics - Anfänger-Themen 8
V Dreidimensionales int Array erweitern/verkleinern Java Basics - Anfänger-Themen 4
A Resize-Fehler (nur) beim waagrecht Verkleinern Java Basics - Anfänger-Themen 5
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
S Canvas verkleinern -> Altes Stück Canvas wird weitergezei Java Basics - Anfänger-Themen 4
M Icons verkleinern ? Java Basics - Anfänger-Themen 2
P variable Arraygroesse? oder verkleinern bzw. vergroessern? Java Basics - Anfänger-Themen 2
P Array verkleinern und sortieren Java Basics - Anfänger-Themen 11
J Space zwischen 2 Character verkleinern Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben