Löschen Sie doppelte strings in der string-array
Ich bin ein Programm zu machen, basierend auf string-Verarbeitung in Java, in dem muss ich entfernen, doppelte strings aus einem string-array. In diesem Programm, die Größe der alle strings gleich sind.
Den 'array' was ist ein string-array enthält eine Anzahl von Zeichenfolgen, in denen zwei Zeichenketten ähneln einander. Also mit dem code unten die doppelte Schnur muss entfernt werden, aber es wird nicht entfernt.
Wie entfernen Sie doppelte strings?
Ich bin mit dem folgenden code.
for(int s=0;s<array.length-1;s++)
{
for(int m=0;m<array.length;m++)
{
for(int n=0;n<array[m].length();n++)
{
if(array[s].charAt(n)==array[m].charAt(n))
{
continue;
}
else
break;
}
if(n==array[m].length())
{
ArrayUtils.removeElement(array, array[s]);
}
}
InformationsquelleAutor der Frage | 2012-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese arbeiten
oder benutzen Sie einfach eine
HashSet
anstelle eines Arrays.InformationsquelleAutor der Antwort Garrett Hall
Es sei denn, dies ist
[homework]
ich würde einen SatzInformationsquelleAutor der Antwort Peter Lawrey
oder starten Sie mit
InformationsquelleAutor der Antwort Joop Eggen
InformationsquelleAutor der Antwort Thangenapally Rajesh
String.equals()
für den Vergleich statt, Durchlaufen die Zeichen in den strings manuell?array[s]
=="12345"
undarray[m]
=="123"
es würde behaupten, dass Sie gleich sindfor(int m=0;m<array.length;m++)
m
auch gleichs
an einem gewissen Punkt, so dass Sie eine Zeichenfolge vergleichen, die sichDiese Hinweise davon ausgehen, dass Sie implementieren müssen, um die Entfernung Logik mit Ihrem eigenen code, nicht erlaubt die Verwendung der Klassenbibliothek. Wenn dies nicht der Fall, wie die anderen angemerkt, mit einem
HashSet
ist der einfachste Ansatz.InformationsquelleAutor der Antwort Péter Török
Warum hast du nicht entfernen die innere Schleife zugunsten der
String.equals(String)
?In der ersten iteration, die Sie vergleichen array[0] array[0], die gleich sind, und es würde entfernt werden. Dann vergleichen Sie die original-array[1] mit allen anderen Elementen des Arrays array, und wenn Sie gleich sind, Sie entfernen, array[1] (nicht die anderen).
Gibt es einige Probleme, wenn es einige doppelte Strings, den Sie entfernen das erste, das reduziert die Größe des Arrays, ohne eine Verringerung der
r
so, einige der Strings im array übersprungen werden.Ich würde verwenden Sie eine Daten-Struktur, die erzwingt Eindeutigkeit, wie ein Satz.
Was wird passieren, wenn du 3 gleiche Strings im array bin ich mir nicht sicher, was passieren wird.
Ich glaube, Sie würden auf einige
ArrayIndexOutOfBoundsException
s.InformationsquelleAutor der Antwort Amir Pashazadeh
Denke ich, dass die if-Bedingung am Ende sein sollte
if(n==(array[m].length()-1))
Gesagt, dass Sie scheinen, zu versuchen, das umzusetzen, was String.equals () - Methode führt in Ihrem innersten Schleife.
InformationsquelleAutor der Antwort Martin Prakash
InformationsquelleAutor der Antwort Janmejai
Vorgeschlagene Lösung Sie nicht halten Sie die Reihenfolge der Elemente. Wenn Sie Java 8 oder höher und pflegen wollen, ist die Reihenfolge, die Sie verwenden können, strömen Sie wie folgt vor:
Vollständigen Beispiel: https://www.javacodeexamples.com/java-string-array-remove-duplicates-example/849
InformationsquelleAutor der Antwort Hubert Schumacher
Doppelte Ganzzahl entfernen : das ist die perfekte Antwort
///Haris ///
InformationsquelleAutor der Antwort haris