From 512faab9cc6f58ca11405e7ec8e3f8e7e2c8b1b6 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 20 Oct 2019 22:02:03 +0200 Subject: [PATCH] add Version Compare Func --- src/com/company/Version.java | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/com/company/Version.java b/src/com/company/Version.java index 8f360b1..116c8c2 100644 --- a/src/com/company/Version.java +++ b/src/com/company/Version.java @@ -117,7 +117,37 @@ public enum Version { return 3; } + /** + * @description compare doted formatted Versions + * @return 0|1|2 + * 0 = less + * 1 = same + * 2 = more + */ + public static int compare(String A, String B) { + if (A.contains(".") || B.contains(".")) { + // example 2 vs 1.3 + if (!(A.contains(".") && B.contains("."))) { + if (A.contains(".")) { + return compare(A,B + ".0"); + } + if (B.contains(".")) { + return compare(A + ".0",B); + } + } - return 0; + //normal compare + int a = Integer.parseInt(A.substring(0,A.indexOf("."))); + int b = Integer.parseInt(B.substring(0,B.indexOf("."))); + if (a < b) return 0; + if (a == b) return compare(A.substring(A.indexOf(".")+1),B.substring(B.indexOf(".")+1)); + return 2; //if (a > b) + } else { + int a = Integer.parseInt(A); + int b = Integer.parseInt(B); + if (a < b) return 0; + if (a == b) return 1; + return 2; //if (a > b) + } } -} +} \ No newline at end of file