Компаратор версий в Python / Java - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть проблема с кодированием, которую я не смог решить правильно.

Вот проблема

Учитывая две строки, вам нужно сравнить, какая из следующих строк имеет более высокое значение икоторый имеет более низкую версию.

Ex 
String 1 : LinuxAOS 1.0.2
String 2: LinuxAOS 2.1.0

Output String 2 is higher version

Ex 2 
String 1: LinuxAOS 1.0.2
String 2: LinuxBOS 1.0.2

Output : Mismatch


Ex 3
String 1: LinuxAOS 1.0.2
String 2: LinuxAOS 1.0.2

Output

1 Ответ

0 голосов
/ 08 декабря 2018

Вместо Comparator, который возвращает целое число, лучше написать свой собственный метод, который возвращает строковый вывод, как вам нужно.

public String compareVersion(String version1, String version2) {
    System.out.println(version1.compareTo(version2));
    if(version1 == null || version2 == null ) {
        return null; //change acc your requirement
    }

    if(version1.equals(version2)) {
        return "";
    }

    String[] verArr1 = version1.split(" ");
    String[] verArr2 = version2.split(" ");

    if(verArr1[0].equals(verArr2[0])) {
        if(version1.compareTo(version2) == 1) {
            return version1 + " is higher version";
        }
        else {
            return version2 + " is higher version";
        }
    }
    else {
        return "Mismatch";
    }

}  

Основной метод

public static void main(String[] args) {

    StringComparator stringComparator = new StringComparator();
    System.out.println(stringComparator.compareVersion("LinuxBOS 1.0.2", "LinuxAOS 2.1.0"));

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...