String mit int multiplizieren?

DarylDixon

Mitglied
Hey Leute,

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)



MfG
 
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.
 
Es gibt dafür in Java zwei Ansätze:
Java:
    public static String echo(String s, int anzahl) {
        String echo = "";
        while (anzahl > 0) {
            echo += s;
            anzahl--;
        }
        return echo;
    }

    public static String echo_2(String s, int anzahl) {
        return new String(new char[anzahl]).replace("\0", s);
    }
Java:
        System.out.println(echo("hallo", 7));
        System.out.println(echo_2("hallo", 7));

Es sollte aber der StringBuilder verwendet werden...
 
Die Lösung auf den goldenen Teller ohne das der TE selber was machen muß wo ist da hier der lerneffekt .
Das ist bestimmt eine Hausaufgaben gewesen.
 
Zuletzt bearbeitet:
[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.
 
Ist aber kein gutes Beispiel was du hier abgibst.
Ich hab doch jetzt wirklich nicht zu viel vorgegeben, hier fehlte nach meiner Auffassung einfach nur ein konkretes Beispiel für das Verständnis.

Wenn gefragt würde, wie addiere ich 3 und 2, und die Antwort wäre

mit +

dann wäre das doch nicht zu viel Hilfe,

zumal es hier Nicht um Hausaufgaben ging.
 
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.
Es ist in Ordnung Schleifen zu üben. Beachte: seit Java 11 gibt es die Methode repeat für Strings:

Java:
        final String str = "abc";
        final String repeated = str.repeat(3);
        System.out.println(repeated);
 
Hallo @vStrelok

Ich hoffe du hast auch verstanden warum das geht.
Java:
String st1 = "Hallo";
String st2 = "Welt";
int anzahl = 3;

System.out.println(st1+st2+anzahl);
System.out.println("Anzahl = : " + anzahl);


Und das geht nicht.

Java:
 // 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.

 
Zuletzt bearbeitet:

Zurück
Oben