Verkettung

Java Syntax
Level 3 , Lektion 5
Verfügbar

„Ich möchte dir zeigen, wie man Zeichenketten zusammenfügt. Der Vorgang des Zusammenfügens oder Verbindens von Zeichenketten wird oft mit dem Wort „Verkettung“ bezeichnet. Vielleicht denkt man dabei an die Verkettung unglücklicher Umstände. Ich mache nur Spaß.“

„Die Regeln für das Zusammenfügen von Zeichenketten sind einfach. Wenn wir eine Zeichenkette und etwas anderes ‚addieren‘, dann wird dieses ‚andere‘ implizit mit der Methode toString() in eine Zeichenkette umgewandelt.“

„Hast du gerade mit mir geredet?“

„Okay, ich werde versuchen, es einfacher zu erklären. Wenn wir eine Zeichenkette, eine Zahl und eine Katze hinzufügen, dann werden sowohl die Zahl als auch die Katze in Zeichenketten umgewandelt. Hier ein paar Beispiele:“

Code Gleichwertiger Code
Cat cat = new Cat();
String text = "The cat is " + cat;
Cat cat = new Cat();
String s = cat.toString();
String text = "The cat is " + s;
int a = 5;
String text = "a is " + a;
int a = 5;
String s = Integer.toString(a);
String text = "a is " + s;
int a = 5;
String text = a + "a is ";
int a = 5;
String s = Integer.toString(a);
String text = s + "a is ";
Cat cat = new Cat();
int a = 5;
String text = "The cat is " + cat + a;
Cat cat = new Cat();
String s1 = cat.toString();
String s2 = Integer.toString(a);
String text = "The cat is " + s1 + s2;
Cat cat = new Cat();
int a = 5;
String text = a + "The cat is " + cat + a;
Cat cat = new Cat();
String s1 = cat.toString();
String s2 = Integer.toString(a);
String s3 = Integer.toString(a);
String text = s3 + "The cat is " + s1 + s2;
Cat cat = new Cat();
int a = 5;
String text = cat + a + "The cat is " + cat + a;
Das Programm wird nicht kompiliert!
Die Addition-Operationen werden von links nach rechts ausgeführt, also erhalten wir:
String text = (((cat + a) + "The cat is ") + cat) + a;
Wenn wir eine Katze zu einer Zahl addieren, wird keine automatische Zeichenkettenumwandlung durchgeführt.
// But you can do this:
Cat cat = new Cat();
int a = 5;
String text = cat + (a + "The cat is ") + cat + a;

// This is the same as:
Cat cat = new Cat();
int a = 5;
String text = ((cat + (a + "The cat is ")) + cat)+a;
Cat cat = new Cat();
String s1 = cat.toString();
String s2 = cat.toString();
String s3 = Integer.toString(a);
String s4 = Integer.toString(a);
String text = s1 + s3 + "The cat is " + s2 + s4;

„Jetzt ist es Zeit für ein paar Aufgaben von Diego.“

Kommentare (13)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Benjamin Wiechmann Level 5, Germany, Germany
30 Januar 2024
Hey guys, I can't see my misstake here:

de/codegym/task/task03/task0312/Solution.java:12: error: 'void' type not allowed here
        System.out.println(Umwandeln(10));
Krysal Level 8, Germany, Germany Expert
23 September 2023
Kommen wir bei den Übungen mal aus dem reinen System.out.println raus? Das haben wir doch jetzt bis zum erbrechen geübt. :/
Heimdall Level 9, Germany, Germany
23 April 2022
Aufgabe: Pool mit Wasser füllen Meine Lehrer hätten mich damals bei diesen angeben Kritisch angeschaut und gefragt "25, 5 und 2 WAS??? birnen? Äpfel? Bananen?..." und in dem fall ist dies berechtig logisch gesehen geht man hier von Metern aus aber es könnten ja auch Dezimeter, Centimeter oder gar Kilometer sein. da würde die berechnung sehr variiren und dem ensptechend das ergebnis failen 😅
Rick Level 4, Germany, Germany
21 Juni 2022
steht doch Meter dran :)
Elias Level 8, Not in list, Germany
11 November 2020
Bei der Pool mit Wasser füllen Aufgabe dürft ihr nicht vergessen, dass ihr das Volumen mit 1000 multiplizieren müsst, damit ihr auf Liter umrechnet.
1 Mai 2020
'Fill a pool with water' is a little bit tricky. Don't forget what the describtion of the task says: -> it means not to print the volume only -> it wants the result in litres ;)
Ansgar Fieberg Level 4, Nuremberg, Germany
14 April 2020
i dont really get what the function of interger.tostring is can someone explain what it actually does ? It seems that it just makes stuff more complicated.
Phili Level 8
28 April 2020
it is just the usual method to convert anything to a string so that you're able to print it on the screen. otherwise things like "System.out.println(a)" (if "a" is an int) wouldn't be possible. In such an instruction, what java does in the background is "System.out.println(integer.toString(a))", so you don't have to worry about it. But, if you create other classes (such as "cat") it might not work, if you use the default "toString" method because this shows some information about your class which you might not want to be printet on your screen. so, it is better to define a "toString" for your class, if you want to print the objects on the screen later in time.
Martin Level 6, Bern, Switzerland
1 Dezember 2019
'Fill a pool with water' seems to be broken
Atakan Isik Level 7, Dortmund, Deutschland
2 Dezember 2019
I've multiplied with a thousand.

long summe = a * b * c * 1000;
klesk Level 31, Duisburg, Germany
1 Januar 2020
If you calculate a * b * c (meters) you get cubic meter m³. 1 cubic meter is 1000 liter. Therefore you have to multiply by 1000 to get liter, or you convert m to cm.
Daniel Ritter Level 17, Augsburg, Deutschland
1 April 2021
you have to comvert in dm. 1 litre is 1 cubic decimetre. so if you convert m in cm instead, you get cubic centimetre and have to devide by 1000 ;-)
Betz Level 5, Ulm, Germany
27 November 2019
'Fill a pool with water' no classes nor requirements?