Addition von Strings

X3los

Mitglied
OK Leute...

Also ich möchte einen Umrechner programmieren der :

Zwei eingegebene Dezimalzahlen zu Dualzahlen umwandelt und dann addiert

und dann wieder eine Dezimalzahl ausgibt...


Habt ihr eine Idee wie ich so etwas machen kann ?
 

Phash

Top Contributor
Jede Menge.
Vor allem willst du nur zahlen addieren, und meine Strings

Wenn du "2"+"3" rechnest kommt nämlich "23" dabei raus
 

Sebbe1993

Mitglied
Ich versteh dein problem nicht ganz ....

Aber deine Überschrift verrät mir das irgenwas verkehrt ist bei dir :D

Strings kann man nicht im eigentlichen Sinne addieren!
Wenn man zwei Strings mit einander "addiert" über den "+-operator" werden diese miteinander
verkettet!

Bsp:

Java:
String a = "Ich werde mit b";
String b = " verkettet!";

System.out.println(a+b);

Ausgabe: "Ich werde mit b verkettet!"!

Die Frage die ich mir stelle : Hast du Schwierigkeiten die schon übergeben Zahlen in form von Strings
zu addieren oder hast du noch gar keinen plan wie du anfangen sollst?!

Gruß Sebastian
 

con0815

Aktives Mitglied
Wie wäre es ganz einfach du zeigst uns, wenn vorhanden, den Code den du schon hast. So kann man wenigstens sehen, was genau du vorhast und ggf. könnte man das insgesamt etwas ändern. Weil Strings, naja Optimal ist anders
 

X3los

Mitglied
Ok... Also ich versuche mich folgender Aufgabe zu stellen....



Anforderungsdefinition:

Leistungsumfang

Das Programm soll in der Lage sein vom Benutzer einzugebende positive Dezimalzahlen in das Dualsystem zu konvertieren und umgekehrt.

Dann sollen zwei von Benutzer eingegebene Dezimalzahlen konvertiert, dual addiert, und die Summe wieder Dezimal ausgegeben werden können.

Funktionsumfang

F1: Umrechnung dezimal --> binär

F2: Umrechnung binär --> dezimal

F3: Addition





Bisher habe ich :

Java:
package umrechner;
import java.util.Scanner;

public class Umrechner {

    public static void main(String[] args) {
        
        //Abfrage der Option
        System.out.println("Wählen sie eine der folgenden Optionen:");
        System.out.println("1 - Dezimal ---> Binär");
        System.out.println("2 - Binär ---> Dezimal");
        System.out.println("3 - Addition zweier Dezimalzahlen");
        System.out.println("4 - Programm beenden");
        
        //Scan nach der Eingabe
        Scanner scan = new Scanner(System.in);
        int option = scan.nextInt();
        
        //Fall 1: Dezimal ---> Binär
        if (option == 1){
        System.out.println("Dezimal ---> Binär");
        System.out.println("Geben sie die umzuwandelnde Dezimalzahl ein:");
        
        //Scan nach der Dezimalzahl
            Scanner scan1 = new Scanner(System.in);
            int option1 = scan1.nextInt();
            int dual = Dezimal(option1);
                        }       
        
        //Fall 2: Binär ---> Dezimal
        if(option == 2){
            System.out.println("Binär ---> Dezimal");
            //Scan nach Eingabe
            Scanner scan2 = new Scanner(System.in);
            String option2 = scan2.nextLine();
            //Übertragen in String
            String dezi = Dual(option2);
                       }
        
        //Fall 3: Addition zweier Dezimalzahlen
        if(option == 3){
            System.out.println("Addition");
            //Scan nach Eingabe 1
            Scanner scan3 = new Scanner(System.in);
            String option3 = scan3.nextLine();
            String dezi1 = Dual(option3);
            //Scan nach Eingabe 2
            Scanner scan4 = new Scanner(System.in);
            String option4 = scan4.nextLine();
            String dezi2 = Dual(option4);
                       } 
        
        //Fall 4: Programm beenden
        if(option == 4){
            System.exit( 0 );
                       }

        
        
        
                                                }
        //Methode Array Dualzahlen
    
    public static int Dezimal(int dez)
    {
            //While Schleife teilt solange durch 2 bis Variable dez = 0 ist
        
            while (dez != 0) {
            if(dez % 2==0) {
            System.out.print("0");
            }
            else {
            System.out.print("1");
            }
            dez = dez / 2;
            }
           return dez;
        }
        public static String Dual (String dual)
        {
            
        //String zuweisen (eigentlich nicht nötig)   
        String dualzahl = dual;
        
   	//char Array erstellen
    	char[] binstellen = dualzahl.toCharArray();
   	
        //Übergangsvariablen definieren
    	int basis = 0;
   	 
    	int dezsum = 0;
   	 
        //Umrechnung --- Bei jedem Durchlauf Arraylänge um 1 verringern
        //           --- Bei Arraygröße i >= 0 stoppen
    	for (int i = binstellen.length-1; i >= 0; i--) {
            
           	//Wandle String zu Integer um
                //Kopiere den entsprechenden String
                //Setze einen Basiswert fest
        	if (Integer.parseInt(String.copyValueOf(binstellen,i,1))==1) basis = 2;
        	else basis = 0;
               	
                //Berechne den Wert durch anwenden der Basis auf Werte
        	dezsum = dezsum + (int)Math.pow(basis, binstellen.length-1-i);
       	 
    	}
        //Gebe Ergebnis aus
    	System.out.println(dezsum);
            return dual;
        }
        
        //Umrechnung auf Plattform unabhängiger Basis
        //Bisher hab ich kein Plan

                


    }
 

Gucky

Top Contributor
Ich bin mir nicht sicher, ob dein Prof dich nicht verarscht, denn ausnahmslos alle Additionen werden auf einem Computer dual ausgeführt. Folglich wird auch die Konvertierung vom Compiler übernommen. Da musst du eigentlich gar nichts tun. Zum Beispiel ist eine 2, zugewiesen an eine byte Variable eine 00000010.

Die Wrapper Klasse Integer hat eine Methode, mit der du einen int-Wert in duale Zahlen umwandeln kannst.
Code:
Integer.toBinaryString(int i)
. Diese Methode gibt einen String mit der Zahl im Binärsystem zurück.

Die Schleife in der Methode Dual
Code:
Merke dir: Methoden NIE NIE NIE NIE NIE groß
wird übersprungen, da jedes Array, wenn es initialisiert wurde eine Länge von 1 oder größer hat.

Java:
char[] binstellen = dualzahl.toCharArray();

Damit machst du ein char Array, in dem deine Zahl als Dezimalzahl steht. Aber die Zahlen stehen dort nicht als Werte, sondern im Ascii Code.

Die Methode Dezimal verstehe ich nicht. Du gibst nullen und einsen aus und dann eine 0 zurück.


Und mal ganz davon abgesehen sieht dein Code, sorry, grauenvoll aus. Bitte formatiere den noch einmal richtig.
 

Gucky

Top Contributor
Dieses Forum ist nicht dazu da, den Code anderer Leute zu schreiben. Wir helfen dir gerne, solange du eigeninitiative zeigst und unsere Tipps umsetzt oder auf einem eigenen Weg ans Ziel kommst. Tut mir leid. Deinen Code wirst du selber schreiben müssen.
Lass doch erstmal meine Tipps mit einfßießen. Zum Beispiel das mit dem .toBinaryString(int); sollte dir schonmal stark helfen.
 
Zuletzt bearbeitet:

Sebbe1993

Mitglied
Lies dich erstmal in das Thema Wrapper Klassen ein !
Also das Programm ist nun keine große Schwierigkeit mit nem gutem Basis wissen ! Aber es nützt dir nix wenn wir dir den Code geben !


Sent from my iPhone using Tapatalk
 

X3los

Mitglied
Ok also ich hab jetzt folgendes geschrieben....

Java:
 public String umrechnen(String dezi1, String dezi2)
    {
        //Übergangs Variable initialisieren
        boolean uebergang = false;
        //Da Rechnung mit Integern durchgeführt wird
        //Initialisiere 2 Integer und weise die Strings den Integern zu
        int zahl1 = Integer.parseInt(dezi1);
        int zahl2 = Integer.parseInt(dezi2);
        
         while (zahl1 > 0 || zahl2 > 0)
       {
           //Weitere Übergangsvariablen um einzelne Ergebnisse zu prüfen
           boolean z1=false,z2=false; 
           if (zahl1%10==1)
               z1=true;
           if (zahl2%10==1)
               z2=true;
           uebergang = addieren(z1,z2,uebergang);
           zahl1 = zahl1/10;
           zahl2 = zahl2/10;
       }
       if (uebergang)
           System.out.print(1);
      
        return dezi1;
        }
     
            private boolean addieren(boolean z1, boolean z2, boolean uebergang) 
         {
             if (z1 && z2)
                  if (uebergang)
                  {
                     System.out.print(1);
                      return true;
                  }
                   else
                   {
                     System.out.print(0);
                      return true;
                  }
             else if (z1 || z2)
                   if (uebergang)
                  {
                       System.out.print(0);
                     return true;
                  }
                  else
                   {
                      System.out.print(1);
                        return false;
                 }
              else 
                  if (uebergang)
                   {
                       System.out.print(1);
                       return false;
                  }
                  else
                   {
                      System.out.print(0);
                        return false;
                   }

Das erfüllt aber noch nicht ganz seinen zweck oder ??

Es funktioniert auf jeden Fall noch nicht...
 

X3los

Mitglied
ok also ich habe jetzt folgendes geschrieben..

Aber was muss ich machen nachdem das ganze durch die Addition durch ist ?


Java:
public String umrechnen(String dezi1, String dezi2)
    {
     //Ergebnis Variable
     String endergebnis = " ";
     
     //Umformen der Variablen in einen Integer Wert
     int zahl1 = Integer.parseInt(dezi1);
     int zahl2 = Integer.parseInt(dezi2);
     
     //Umwandeln der 1.Eingabe zu einer Dualzahl
     String dual1 = "";
            
     while (zahl1 != 0) {
     if(zahl1 % 2==0) {
     dual1 = dual1 + "0";
     }
     else {
     dual1 = dual1 + "1";
     }
     zahl1 = zahl1 / 2;
            }
     dual1 = new StringBuffer(dual1).reverse().toString();
     
     //Umwandeln der 2.Eingabe zu einer Dualzahl
     String dual2 = "";
            
     while (zahl1 != 0) {
     if(zahl1 % 2==0) {
     dual2 = dual2 + "0";
     }
     else {
     dual2 = dual2 + "1";
     }
     zahl1 = zahl1 / 2;
            }
     dual2 = new StringBuffer(dual2).reverse().toString();
     
     //Umwandeln der beiden Dualzahlen zu Integern
     int bin1 = Integer.parseInt(dual1);
     int bin2 = Integer.parseInt(dual2);

     
     int[] z1 = new int[] {bin1};
     int[] z2 = new int[] {bin2};
     int[] e = new int[9999];
     int uebertrag = 0;
     for (int i=0; i < z1.length; i++) {
     int tmp = z1[i] + z2[i] + uebertrag;
     uebertrag = tmp > 1 ? 1 : 0;
     e[i] = tmp % 2;
     }
     return endergebnis;
    }


Kann mir vieleicht jemand den Code zur Addition der Dualzahlen bin1 und bin2 geben ?
Da hab ich keine Idee...
 

Gucky

Top Contributor
Wandel die Zahl als Dualzahl in ein Array oder eine ArrayList aus boolean-Werten um.
Dann schreibst du dir die schriftliche Addition von Dualzahlen auf und setzt dann genau das um.
Wie gesagt. Den Code musst du selber schreiben. Das bringt dir nichts, wenn wir dir den Code geben, bis auf die Tatsache, das du dann mit den Hausaufgaben fertig bist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
J Double Variable und Addition Java Basics - Anfänger-Themen 2
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
L Addition von 1 bis n, in Arrays umstellen Java Basics - Anfänger-Themen 15
E Addition Array Java Basics - Anfänger-Themen 6
M Array Addition Binärzahlen Java Basics - Anfänger-Themen 9
A Binäre Addition Java Basics - Anfänger-Themen 15
M Addition mit hohen Zahlen - Hilfe Java Basics - Anfänger-Themen 5
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
X Compiler-Fehler Possible loss of precision bei addition von int und char Java Basics - Anfänger-Themen 5
C Logischer Fehler mit Addition von Arrays Java Basics - Anfänger-Themen 3
I Schriftliche Addition Arrays Java Basics - Anfänger-Themen 2
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
X Arrays/Addition Java Basics - Anfänger-Themen 18
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
K Datentypen Kurzform Addition geht, Langform scheitert am Typen Java Basics - Anfänger-Themen 6
A Binäre Addition Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
P Addition von 2 Variablen Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
E Addition von char und int als Zeichen ausgeben Java Basics - Anfänger-Themen 11
J Addition zweier Zahlen Java Basics - Anfänger-Themen 9
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
X Addition rekursiv ohne Schleife Java Basics - Anfänger-Themen 10
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
E Addition von Arrays Java Basics - Anfänger-Themen 4
H Mysteriöse Ausgaben nach Addition Java Basics - Anfänger-Themen 5
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
M Ausgabe einer gerade Zahl nur mit Addition,subtraktion und vergleichsoperatoren! Java Basics - Anfänger-Themen 4
J klasse vektor addition Java Basics - Anfänger-Themen 10
S Anzahl der Überträge bei einer Addition ausgeben Java Basics - Anfänger-Themen 8
S Addition von eigenen Objekten mit "+" Symbol Java Basics - Anfänger-Themen 19
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
A ungenaue addition Java Basics - Anfänger-Themen 2
A Addition mehrdimmensionaler Arrays - Klausurfrage :-( Java Basics - Anfänger-Themen 3
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
J Addition von double values fehlerhaft? Java Basics - Anfänger-Themen 5
H Subtraktion mittels Negierung auf Addition zurückführen Java Basics - Anfänger-Themen 4
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
V Addition in einem Zweidimensionalenfeld Java Basics - Anfänger-Themen 8
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
N Nachkommastellen von Strings Java Basics - Anfänger-Themen 3
T Strings unveränderlich???? Java Basics - Anfänger-Themen 22
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
S Die durchschnittliche Länge der Strings Java Basics - Anfänger-Themen 11
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
sserio StringBuilder und Strings Java Basics - Anfänger-Themen 8
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
N Strings verpflechten Java Basics - Anfänger-Themen 4
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
L Strings aneinanderhängen Java Basics - Anfänger-Themen 2
M Strings vergleichen Java Basics - Anfänger-Themen 10
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
P Verketten, Aneinanderreihen von Strings Java Basics - Anfänger-Themen 2
M Strings mit gerader und ungerader Länge ausgeben Java Basics - Anfänger-Themen 10
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
W Strings und das parsen Java Basics - Anfänger-Themen 8
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Konkatenation von zwei Strings Java Basics - Anfänger-Themen 6
J Abbruchbedingung in Schleife/ Untersuchung von Strings Java Basics - Anfänger-Themen 2
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
X Anagramm mit Strings und Methode Java Basics - Anfänger-Themen 53
P geschachtelte Schleife mit Strings Java Basics - Anfänger-Themen 2
P Strings mit der Axt zerteilen Java Basics - Anfänger-Themen 7
F Alle Zeichenkombinationen eines Strings iterativ herausfinden Java Basics - Anfänger-Themen 26
K Strings hochzählen Java Basics - Anfänger-Themen 20
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
J Unveränderbarkeit von Strings Java Basics - Anfänger-Themen 3
O Klammerung bei Strings Java Basics - Anfänger-Themen 10
A Liste aus drei Strings erstellen Java Basics - Anfänger-Themen 5
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
G Teil(e) eines Strings entfernen wenn spezifische Zeichen (< & >) vorkommen Java Basics - Anfänger-Themen 5
D ergebnis.matches("[1-9]?[0-9].[0-9][0-9]?") ein teil eines größeren Strings Java Basics - Anfänger-Themen 12
J Breite eines Strings bestimmen Java Basics - Anfänger-Themen 4
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben