2016-04-25 16 views
-5

Ich habe eine Liste der aktuellen Programmversion: [ null, "0.2.1-RELEASE", "0.2.2-RELEASE", "0.3.0-SNAPSHOT", "0.4.1-RELEASE", "0.4.2-RELEASE" ]abrufen lange von einer Version Zeichenfolge

Sie sind String in der DB.

Ich mag Java Spiel RegExp verwenden lange von jenen Zeichenfolge abrufen wie 0,2 von 0.2.1-RELEASE 0,4 von "0.4.1-RELEASE" und "0.4.2-RELEASE"

Jeder weiß, Wie?

+2

'0.2' ist keine lange zu üben. Meinst du "doppelt"? –

+0

so ziemlich die einfachste Extraktion Regex, die Sie schreiben könnten, würde ich wirklich empfehlen, dass Sie einfach lernen, wie man Regex schreiben. – djechlin

+2

@AndyTurner Es ist auch nicht wirklich ein Gleitkomma. Es ist * wirklich * eine Maven-Version, für die der Parser verfügbar ist. – chrylis

Antwort

0

Nun - Es ist kein Lang - Sie können es als Zeichenfolge extrahieren und es zu einem Double;

Pattern p = Pattern.compile(("(\\d\\.\\d)")); 
    Matcher m = p.matcher("0.1.0.2 RELEASE"); 
    if (m.find()){ 
     System.out.println(Double.parseDouble(m.group(0))); 
    } 

PS: http://regexr.com/3d9uj Überprüfen Sie reguläre Ausdrücke

+0

Danke, aber wenn die Version String ist "12.12.00", der Code zurück 2.1, erwarte ich 12.12. :) – Weever

+0

Whooops - meine schlechte: Muster sollte sein: \\ d + \\. \ D + (beachten Sie, dass nur der erste Teil der Versionsnummer übereinstimmt - und Version 1.12 wird als niedriger als 1.2 behandelt - was falsch ist - einen anderen betrachten Datenstruktur als Double zum Vergleichen der Versionsnummerierung) – CBudtz

Verwandte Themen