如何在java中释放查询间隔

如何在java中释放查询间隔,java,algorithm,release,intervals,Java,Algorithm,Release,Intervals,我有两个版本号。 例如: 旧版本=1.1.0 新版本=3.3.4 1.1.0<1.2.1<3.3.4 format =(Major| Minor|Revision) 1.1.0<1.2.5<3.3.4 format =(Major| Minor|Revision) 1.1.0<1.2.5.1<3.3.4 format =(Major| Minor|Revision|Build Number) 1.1.0<3.0<

我有两个版本号。 例如: 旧版本=1.1.0 新版本=3.3.4

    1.1.0<1.2.1<3.3.4 format =(Major| Minor|Revision)

    1.1.0<1.2.5<3.3.4 format =(Major| Minor|Revision)

    1.1.0<1.2.5.1<3.3.4 format =(Major| Minor|Revision|Build Number)

    1.1.0<3.0<3.3.4 format =(Major|Minor)
我想创建查询以获取其他版本号 在旧版本和新版本之间,如1.2.1或1.2.5或1.2.5.1或1.3.0,但除3.3.5外,这些版本号必须作为其他发布版本返回(1.2.1 | 1.2.5 | 1.3.0 | 1.2.5.1 | 3.0)

因为这些版本号包括旧版本和新版本的范围

e、 g:

旧版本=1.1.0 新版本=3.3.4

    1.1.0<1.2.1<3.3.4 format =(Major| Minor|Revision)

    1.1.0<1.2.5<3.3.4 format =(Major| Minor|Revision)

    1.1.0<1.2.5.1<3.3.4 format =(Major| Minor|Revision|Build Number)

    1.1.0<3.0<3.3.4 format =(Major|Minor)

1.1.0假设您的版本字符串始终采用“x.y.z”格式(没有空格,除了点和数字之外没有其他特殊字符)。
编写函数以获取版本的相对值,如下所示:

int valueOfVersion(String version){
   String numberStr = "";
   int numberInt = 0;
   for(int i=0;i<version.length();i++){
      if(version.charAt(i)=='.'){
         numberStr = "";
         numberInt*10+Integer.parseInt(numberStr);
      }
      else{
         numberStr+=Character.toString(version.charAt(i));
      }
   }
   numberInt*10+Integer.parseInt(numberStr); //process the last part of version
   return numberInt;
}
int-valueOfVersion(字符串版本){
字符串numberStr=“”;
int numberprint=0;

对于(int i=0;i如果您的字符串版本不总是三位数格式(它们可能是“x.y”或“x.y.z.t.u.v…”),则获取其中的每个部分并进行相对比较

boolean isGreater(String v1, String v2){
   int[]numbers1 = getNumbers(v1);
   int[]numbers2 = getNumbers(v2);
   for(int i=0;i<numbers1.length()&&i<numbers2.length();i++){
      if(numbers1[i]>numbers2[i]) return true; //v1 > v2
      if(numbers1[i]<numbers2[i]) return false; //v1 < v2
   }
   if(numbers1.length()==numbers2.length()) return false; they're same
   return numbers1.length()>numbers2.length();
}
布尔值更大(字符串v1、字符串v2){
int[]numbers1=getNumbers(v1);
int[]numbers2=getNumbers(v2);
对于(int i=0;i v2

if(numbers1[i]很抱歉,我不能清楚地解释我的问题。我更新了问题。实际上应该支持其他发行格式的“x.y”或“x.y.z.t”版本。例如:1.1。0@Yasin查看我的新答案非常感谢。这是处理它的工作。问题解决后很容易。谢谢@Ta Quang Tu