Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hier seht ihr meinen Code, worin auch die Übungsaufgabe steht:
Java:
public static String echo(String s, int anzahl) {
// Schreibe den String s so oft hintereinander, wie der Parameter anzahl vorgibt.
// Sie duerfen davon ausgehen, dass anzahl >= 0 ist.
//
// Beispiele:
// ----------
// s: "Hallo", anzahl: 2 -> Rueckgabewert: "HalloHallo"
// s: "Echo", anzahl: 0 -> Rueckgabewert: ""
String ausgabe;
if (anzahl > 0) {
ausgabe= s * anzahl;
}
else {
ausgabe = "";
}
return ausgabe;
}
Nun meine Frage:
Ist es möglich, einen String mit einem integer zu multiplizieren? Natürlich kriege ich eine Fehlermeldung in der Zeile wo ausgabe= s * anzahl; steht, doch gibt es eine Möglichkeit, diesen Fehler zu umgehen?
(Für die Aufgabe muss ich mit einem return arbeiten)
In Java lassen sich Operatoren nicht überladen. Damit ist die Verwendung der Operatoren außerhalb dem von der Java Sprache vorgesehenen Rahmen, nicht möglich.
Statt dessen muss dies z.B. über Methoden erfolgen, die dann auch normal aufgerufen werden müssen. (Und dann musst Du das entsprechend auch selbst implementieren, was da erfolgen soll!)
Die Frage nach der Umsetzung richtet sich nach der Erwartungshaltung, bzw. dem gewünschten Ergebnis
Wenn du "Hallo" mit 2 multuplizierst, was soll dann rauskommen?
Man könnte z.B. den ASCII-Wert jedes Buchstaben mit 2 multiplizieren, oder jeden Buchstaben duplizieren oder das Wort oder oder oder
Für alle Optionen musst du dir deine eigenen Methoden schreiben.
Also nein, Strings können auf keinen Fall mit Zahlen multipliziert oder anderweitig kombiniert werden.
Der oft verwendete "+" Operator zwischen String und einer Zahl wird beim Kompilieren durch eine Konkatenation des Strings und der Standardtextdarstellung der Zahl ersetzt.
[CODE lang="java" title="Der Pseudo Code"]methode vervielfachen ( String s , int anzahl)
{
String ergebniskette = ""
für ( sooft wie anzahl da ist )
{
ergebniskette = ergebniskette + s;
}
return ergebniskette
}[/CODE]
das ist ein pseudo code dh der funktioniert so nicht du musst ihn noch in java umbauen
der sinn der "konketation" ist ein string + string macht folgendes
du nimmst den ersten string und verbindest ihn mit den zweiten
damit kannst du deine vervielfachung des strings erreichen
in dem du für jede anzahl den string 1 mal dran hängst
Vielen Dank für eure Hilfe! Ich habe es mit einer For-Schleife geschafft und auch die Struktur von For-Schleifen besser kennengelernt.
Hierbei handelt es sich nicht um eine Hausaufgabe, sondern um Übungsaufgaben, die ich in einem freiwilligen Kurs (als Vorbereitung für mein Studium) bearbeite.
Vielen Dank für eure Hilfe! Ich habe es mit einer For-Schleife geschafft und auch die Struktur von For-Schleifen besser kennengelernt.
Hierbei handelt es sich nicht um eine Hausaufgabe, sondern um Übungsaufgaben, die ich in einem freiwilligen Kurs (als Vorbereitung für mein Studium) bearbeite.
// System.out.println("Anzahl = : " * anzahl); geht nicht nicht
Das „+“ ist hier keine Addition sondern das „+“ wird hier als Verkettungs Operator benutzt.
Und bei der Int Variable wird vorher der String gebildet (toString) und das mit dem String verkettet.
Das hat nichts mit eine Addition zu tun. Somit kann es mit der Multiplikation auch nicht gehen.
denn es wird da nichts gerechnet auch wenn das so ausschaut.