Frage von MySafeSpace, 89

Wie kann ich den Inhalt zweier Strings zusammenrechnen?

Hallo Leute. Ich hab kürzlich angefangen Java zu programmieren. Nun, ich hab da einen Code geschrieben (ich poste den link). Nun das Problem ist, dass ich nicht weis, wie man den Inhalt verschiedener Strings zusammenrechnet. So will ich bei dem Programm, zum Beispiel den String T1 mit dem String U1 zusammenrechnen, doch ich weis nicht wie das geht.

Antwort
von sarahj, 35

Ich denke, Dir fehlt das fundamentale Verständnis von Datentypen.
Strings sind arrays von Zeichen. (Buchstaben, Ziffern, Sonderzeichen). Dem String ist es egal, ob Ziffern, Buchstaben oder sonstwas in ihm steckt. Er "weiss" auch nichts von mathematischen Funktionen.

Strings kann man nicht (mathematisch) addieren, auch wenn es einen "+"-Operator für Strings in manchen Programmiersprachen gibt, macht der in Java was anderes als addieren (er macht Dir einen neuen String, mit der Verkettung (Aneinanderreihung der Zeichen).

Zahlen kann man addieren.
Dazu muss man erst mal den String konvertieren. D.h. man muss die Zahl, die durch den String repräsentiert wird erst mal ausrechnen.

Wie macht man das? Indem man die Ziffernwerte (0-9) mit den jeweiligen Stellenwerten (1, 10, 100, 1000,..) multipliziert, und alles aufsummiert.
Das macht die "parseInt"-Routine freundlicherweise für Dich.

Es wäre aber eine gute Übung, es mal selbst zu programmieren. Z.B. für quaternäre Zahlen [https://de.wikipedia.org/wiki/Quatern%C3%A4r] oder auch für römische Zahlen, was ein bisschen komplizierter ist ;-)

Aber wie gesagt: lies mal eine Einführung in die fundamentalen Datentypen. Da hapert es.

Antwort
von MySafeSpace, 62

hier ist der link: 

h tt p:// pa stebin.com/ i7w3 dwq W

Kommentar von maximilianus7 ,

du darfst inet-links angeben. angeblich jetzt sogar mehrere

http://pastebin.com/i7w3dwqW

Expertenantwort
von TeeTier, Community-Experte für programmieren, 25

Keine Ahnung, was du meinst. Vielleicht so etwas hier? ...

String a = "123";
String b = "456";

String sum = Integer.toString(Integer.parseInt(a) + Integer.parseInt(b));

Anstatt "Integer" und "parseInt" kannst du auch "Double" und "parseDouble" verwenden, falls dir reelle lieber als ganze Zahlen sind. :)

Antwort
von LC2015, 47

Zusammenrechnen heißt?

Antwort
von Tschoo, 43

Hallo!

Überlege halt mal, Strings sind Zeichenketten, du willst also sowas wie

"Hanna" + "MySafeSpace" ausrechenen --> das ist mathematisch Quatsch.

Du musst Zahlen nehmen!!!!!

5 + 12 ergibt 17 aber "Wo" + "hin" ergibt vielleicht "Quo Vadis", in deinem Kopf, aber es gibt keine mathematische Regel dafür.

gRU?

Kommentar von MySafeSpace ,

Ja dass ich Zahlen nehmen muss ist mir bewusst... Nur weis ich nicht wie ich diese Zahlen zusammenrechnen kann. Also wie ich die Zahlen die eingebe dann schliesslich zusammenrechnen kann. 

Kommentar von Tschoo ,

Du musst sie als Zahlen deklarieren -- du lernst, hast du keine Unterlagen???

z.B.

float y = 5.2

float z =4.0

... die replace-Funktion geht nur auf Strings, dann musst du halt, wie ein anderer hier schon gesagt hat, diese in Strings konvertieren und nach dem replace wieder in Zahlen umwandeln.

Aber ich glaube, dies ist noch zu viel für deinen Kenntnisstand.

Versuche erstmal nur mit Zahlen klar zu kommen.

Kommentar von MySafeSpace ,

Meine Unterlagen sind im Moment nicht verfügbar. Deswegen frag ich hier nach. 

Antwort
von JupStrunk, 42

was heißt "Strings zusammenrechnen" ???
Strings kann man nicht "zusammenrechnen" !!!

wenn Du meinst, dass Du die Zahlen, die in den Strings stehen, zusammenrechnen willst, dann musst Du diese erstmal in Zahlenwerte "konvertieren", die kannst Du dann zusammenrechnen !!! ;)

schau' dir das mal an, vielleicht hilft dir das ja schon weiter... :D

float f = Float.parseFloat("25");
Kommentar von MySafeSpace ,

Ja das meinte ich, sorry dass ich den Titel merkwürdig geschrieben habe. Ich will die addieren (also die strings). :/

Kommentar von JupStrunk ,

Ich will die addieren (also die strings)

das macht genusowenig Sinn, man kann keine "Strings" zusammenrechnen (addieren) !!! :D

aber ich weiß, was Du meinst...
Du willst die Zahlen, die in den Strings gespeichert sind, addieren...
sieh dir meine Antwort an, das ist genau das, was Du brauchst !!! ;)

Kommentar von MySafeSpace ,

okay danke nochmal. falls ich fragen habe melde ich mich noch einmal. 

Kommentar von MySafeSpace ,

noch ne kurze frage. wo soll ich die zeile die du geschrieben hast einsetzen? Und was soll ich anstatt der 25 hineinschreiben. 

Kommentar von DataIsBeautiful ,

Wenn ich das richtig verstanden habe, dann hast du einen String, der eine Zahl enthält. Ein String ist einfach eine Zeichenkette, demnach kannst du mit ihr keine arithmetischen Operationen (also Addition, Substraktion, Multiplikation, Division usw.) durchführen.

Du kannst allerdings eine Methode verwenden, die, falls dein String eine Zahl ist, aus diesem String die Zahl herausbekommt und dann zurückgibt.
So könnte das dann aussehen:

int foo = Integer.parseInt("1234");

Quelle: http://stackoverflow.com/questions/5585779/converting-string-to-int-in-java

Dabei ist die Methode "parseInt(String pString)" dafür zuständig, dass der String, dem du ihm als Parameter übergibst (in diesem Fall: "1234"), in einen Integer, also eine Ganzzahl, umgewandelt wird.
In deinem Fall müsstest du ihm jetzt deinen String geben, also wenn das hier bei dir stehen würde:

String beispielString = "7283";

Dann müsstest du folgendes tun:

int foo = Integer.parseInt(beispielString);

Jetzt würde der Integer (Ganzzahl), der aus deinem String erstellt wurde, in der Variable "foo" gespeichert werden. Dabei ist jetzt hier "foo" nur ein belieber Variablenname, du kannst ihn selbstverständlich nennen wie du willst, solange es den Java-Anforderungen entspricht.

Jetzt kannst du mit "foo" rechnen.

Kommentar von MySafeSpace ,

also versteh ich das richtig und kann nun so rechnen: System.out.println("foo1 + foo2"); 

?

Kommentar von JupStrunk ,

nein, kann man nicht !!!
probier's doch einfach mal aus... :D

oder schau' einfach mal auf mein Beispiel... ;)

Kommentar von JupStrunk ,

na deine Strings (für jeden String diese Funktion) !!!

also, das ist dein Versuch, verkürzt auf zwei Strings:

System.out.println("Neu: " + t1 + " " + u1);

ich würde das dann so schreiben:

float summe = Float.parseFloat(t1) + Float.parseFloat(u1);
System.out.println("Neu: " + Float.toString(summe));

Keine passende Antwort gefunden?

Fragen Sie die Community