Einfach Anzahl der Array mit den Einzelnen Ziffern
Bin ich ausnahmsweise neu zu Programmieren, aber ich arbeite an der Verbesserung meiner Fähigkeiten als Programmierer. Derzeit arbeite ich an einem problem, ich habe mir, wo ich bin versucht, eine variable Anzahl und machen jede Ihrer Ziffern eine separate Nummer in einem array. Ich kümmern sich nicht um die Reihenfolge der Ziffern, also, wenn Sie vertauscht sind, dann hilft es mir egal. Ich weiß, die Leute haben gefragt, diese Frage unzählige Male, aber Sie scheinen immer eine Menge Dinge, die ich nicht verstehe. Da meine Schule bietet nicht alle Java-Kurse, ich weiß nur was ich gelernt habe, auf meine eigene, also, wenn Sie erklären könnte, alle Begriffe, die Sie im code verwendet, die nicht extrem trivial, das wäre wunderbar. Jetzt habe ich geschrieben:
int number = 1234567890;
while (number > 0) {
System.out.println(number%10);
number = number/10;
Dies funktioniert gut für das drucken die Ziffern einzeln, aber ich kann nicht herausfinden, wie Sie dem array hinzufügen. Ich bin sehr dankbar für jede Hilfe, die Sie geben können, und bitte im Hinterkopf behalten, dass ich viel lieber die Einfachheit über der kleinen Größe. Vielen Dank im Voraus!
P. S. Einige der Reaktionen, die ich erlebt habe ähnliche Fragen beinhalten, was ich denke, sind arrays von strings. Um für den Teil des Programms, dass ich die Arbeit noch Arbeit, ich denke, dass ich ein array von ganzen zahlen. Wenn du neugierig bist, der rest des Codes wird verwendet, um zu bestimmen, wenn die zahlen im array sind alle unterschiedlich, um zu erreichen, das endgültige Ergebnis der Bestimmung, ob eine Anzahl von Ziffern sind alle unterschiedlich. Es sieht wie folgt aus:
int repeats=0;
int[] digitArray;
digitArray = new int[10];
for (int i = 0; i < digitArray.length; i++)
for (int j = 0; j < digitArray.length; j++)
if ((i != j) && (digitArray[i]==digitArray[j])) unique = unique+1;
System.out.println(unique==0);
- In diesem Fall, wir wissen nicht, die Größe vor der Zeit, so denke ich, arraylist wäre hier gut. Wenn Sie verwenden arraylist, alles, was Sie tun müssen, wäre yourList.add(Zahl%10); wegen des autoboxing, java5 wird es funktionieren.
- Ich weiß wirklich nicht, was eine arraylist ist... ist es wie ein array, aber mit einem anderen Namen und einer dynamischen Größe?
- Ja, es ist ein dynamisches array, welches unterstützt wird durch ein array.docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html
- Genau. Ich habe noch einen link zu der Dokumentation in die erste Zeile meiner Antwort. Sie können überprüfen, dass.
- Das ist wirklich ein toller Ort! Ich schau mal in diese Liste-array. Es sieht aus wie es könnte nicht nur mir helfen, dieses problem zu lösen, aber könnte auch sehr hilfreich sein in der Zukunft. Ich danke Euch so sehr für all Ihre Hilfe.
- Integer.toString(n).chars().Karte(a->a-'0').toArray();
Du musst angemeldet sein, um einen Kommentar abzugeben.
Methode Anzahl.toString().Länge() wird zurückgegeben, der die Anzahl der Ziffern. Das ist die gleiche wie die Länge des benötigten Arrays. Dann nutzen Sie Ihr code wie vorher, aber anstatt zu drucken, fügen Sie die Ziffern in das array.
int
zu.Integer
ist nicht unbedingt erforderlich. In der Tat, sollten Sieint
wo immer möglich. Und verwenden Sie nurInteger
, wo Sie nicht verwalten können, ohne dass es, z.B. in einem generischenArrayList
Erklärung, wo Sie nicht haben -ArrayList<int>
, aber nurArrayList<Integer>
toString
Methode in Integer? Und wie wird es sich auf die Verwendung vonint[]
stattInteger[]
?Integer.toString
wie gezeigt.Ich würde eher vermuten Sie ein
ArrayList
, da um ein array zu verwenden, Sie müssten die Größe im Voraus, für die Sie brauchen, um zu wissen, die Anzahl der Ziffern Ihrer Nummer, die Sie nicht kennen.So, arbeiten entweder mit einem array, und führen Sie die iteration über die Anzahl zweimal - einmal für die Suche nach Größe, und weiter für tun eigentliche Arbeit. Andere, voran mit einem
ArrayList
.Hinzufügen eines Elements zu einer
ArrayList
ist ganz einfach. Sie brauchen nur zu rufen -List#add(E)
Methode mit dem passenden parameter.So, hier ist eine Erweiterung der Lösung: -
Alternativ, wenn Sie wollen, haben Sie nur eindeutige Ziffern Ihrer
List
, dann sollten Sie eineHashSet
, die automatisch entfernt die Duplikate.Set
, dass speichert nur eindeutige element. Sie wissensets
in Mathematik richtig? Es ist nur so, dass. Sie können mehr details in docs.ArrayList
mit einemHashSet
. Es geht so: -Set<Integer> digits = new HashSet<Integer>();
. Und der rest ist gleich.int
. Versuchen Sie es mitlong
geben Sie für Ihre original-Nummer.Mit Java 8:
Integer.toString(n).chars().Karte(a->a-'0').toArray()
Dieser code liest eine Zahl von
scan.next()
und dann ist es zu geben, es als ein Beitrag zuchar
array zurück, das die Nummer in seinen Verzeichnissen als eine einzige Ziffer für Ziffer.Hoffe, das wird helfen.