Wiederholen Sie eine ganze Zahl n mal
Ich versuche zu machen, eine Pyramide aus einem integer.
I. E der Nummer 3 :
3
33
333
Also basierend auf den Antworten, die ich gefunden habe ich dieses :
int n = 8;
String n2 = Integer.toString(n);
for (int i=0; i<n; i++) {
System.out.println(StringUtils.repeat(n2, i));
}
Aber es funktioniert nicht und wäre suboptimal. Gibt es eine einfache Möglichkeit, zu wiederholen, eine ganze Zahl n-mal in der gleichen Zeile ?
EDIT : aus mir eine Methode.. nicht ganz glücklich, aber es scheint, ich kann nicht einfach so etwas wie System.aus.println(int x, int n mal)
int n = 8;
for (int i=0; i<=n; i++) {
for (int j=0; j<i; j++) {
System.out.print(n + " ");
}
System.out.println("");
}
- es funktioniert nicht - was meinst du? Und warum ist es suboptimal?
- Sie können nicht bauen dynamische rekursive Struktur wie diese Pyramide ohne Schleife
- Ich meine, ist es nicht suboptimal, meine konvertieren int in einen string ? AIn ' T es einen direkten Weg, um mit der integer ?
- Das int wird in einen String konvertiert für die Anzeige sowieso. Sie sollten es vermeiden, mit Worten wie "suboptimal", wenn Sie nicht wissen, was Sie sind ein Anfänger. Die Chancen sind Sie nicht wirklich verstehen, was optimal ist und was nicht.
- Yep; ich hatte gehofft, dass sowas wie System.aus.println(x, y), wobei x-t-er-Ganzzahl zur Darstellung und y die Anzahl der Zeit, die Sie wollen, um es anzuzeigen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht wollen, zu konvertieren von int zu string.
Dieser kann Ihnen dabei helfen.
Ok, Sie kann dies tun, ohne explizite Schleifen mit
Java-8
streams:oder auch ohne
apache-commons
:Aber in jedem Fall intern werden alle diese Methoden verwenden Schleifen.
, i hope this is same as
for-Schleife`String.repeat
Schleife verwendet intern auchn2
ist immer string-Darstellung vonn
:n2 = Integer.toString(n)
[0,n]
DankEtwas wie unten.
Ausgabe
Könnten Sie versuchen, verwenden Sie eine StringBuilder.
Sie würden immer noch auf der Schleife, aber es könnte etwas bessere performance-wise.
Das tut, was Sie will, aber nicht in der Art und Weise Sie über Sie denken. Anstatt wiederholt zu erstellen, die die Wiederholung integer string, wir erstellen Sie einfach EINE Zeichenfolge, spart uns die Arbeit, Sie zu wiederholen.
Tatsächlich die Antwort auf Ihre Frage, konnte Sie diesen code verwenden, obwohl ich würde empfehlen, den ersten Ansatz:
Dies würde nur funktionieren, wenn Ihre ganze Zahl ist, 0 <= Anzahl < 10.
Halten mit ganzen zahlen, können Sie speichern Letzte Wert jedes mal, und fügen Sie im nächsten Teil :
i = 0 --> Sie erhalten 3
i = 1 --> du bekommst 33 (i0 + 30)
i = 2 --> bekommen Sie 333 (i1 + 300)
Dieser arbeitet natürlich für einstellige ganze zahlen nur.