Vergleiche Strings in Groovy

8

Hey Ich habe ein Groovy-Skript erstellt, das die Versionsnummern einiger Ordner extrahiert. Ich möchte dann die Versionsnummern vergleichen und die höchste auswählen.

Ich habe mein Skript durch den Verzeichnisordner laufen lassen und dann die Versionen in folgendem Format bekommen: 02.2.02.01

So könnte ich etwas wie das bekommen:

  • 02.2.02.01
  • 02.2.02.02
  • 02.2.03.01

Ich habe sie nicht als Liste, aber so:

%Vor%

Ich habe auch getestet, dass Groovy sie mit dem Operator > vergleichen kann und es kann! Aber jetzt muss ich den mit der höchsten Version auswählen

    
Nyegaard 11.10.2011, 08:36
quelle

9 Antworten

8

Dies scheint zu funktionieren

%Vor%

Hier ist eine unzureichende Reihe von Tests. Sie sollten etwas mehr hinzufügen.

%Vor%

Führen Sie diesen Code und die Tests in der Groovy-Konsole aus, um zu überprüfen, ob er funktioniert.

    
Dónal 11.10.2011, 09:13
quelle
7

Wenn wir nach der kürzesten Antwort suchen, muss diese nahe kommen; -)

%Vor%     
tim_yates 12.10.2011 08:45
quelle
4

Wenn jemand Grails benutzt (z. B. Grails 2.2.3), denke ich, dass VersionComparator genau das liefert, was wir brauchen.

Wenn Sie Grails nicht verwenden, können Sie immer den Quellcode dieser Klasse googlen.

Beispiel für Arbeitstests:

%Vor%

Hoffe, das hilft.

    
Max 16.05.2014 15:21
quelle
2

Meins ist der kürzeste! lol)

%Vor%     
Nikita Volkov 11.10.2011 13:57
quelle
2
%Vor%     
Aleksei 19.10.2015 10:44
quelle
0

Der Code, den ich mit Jenkins ExtendedChoiceParameter verwende (tolerant gegenüber nicht ganzzahligen Fragmenten in der Versionszeichenfolge)

%Vor%     
bobah 12.10.2015 13:46
quelle
0

Hier ist eine leicht modifizierte Version von Nikitas Beitrag:

%Vor%     
solvingJ 29.04.2016 13:52
quelle
0

Hier ist eine Modifikation von Tims Antwort, die zwei Versionszeichenfolgen akzeptiert und einen booleschen Wert zurückgibt (wahr, wenn der erste neuer als der zweite ist)

%Vor%     
solvingJ 29.04.2016 14:59
quelle
0

Ich benutze Gradle 4.1 in Android Studio 3.0 Beta 7. Es gibt VersionNumber.java (unter C: \ Benutzer \ ssfang.gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1 \ src \ core \ org \ gradle \ util)

Zum Beispiel:

%Vor%

-

    
samm 25.10.2017 11:00
quelle

Tags und Links