Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找java版本最大值的逻辑_Java_String_Max - Fatal编程技术网

查找java版本最大值的逻辑

查找java版本最大值的逻辑,java,string,max,Java,String,Max,我的任务是找出给定输入中逗号分隔的组件的最大可用版本 输入如下: 1.4.7.2、1.6.1.2.1.2、5.6、23.7.1.1、23.0.1、38.3 我必须找出其中的最大版本是:38.3 我解决上述问题的算法是: 删除除数字以外的所有空格或任何字符,。和输入字符串中的逗号 将输入字符串拆分为不同版本的字符串数组 将第一个版本作为maxVersion并删除。将该值作为maxVaue,将该值的长度作为maxLength 从索引1迭代到结尾,并通过删除来格式化每个字符串。然后将长度与maxlen

我的任务是找出给定输入中逗号分隔的组件的最大可用版本

输入如下:

1.4.7.2、1.6.1.2.1.2、5.6、23.7.1.1、23.0.1、38.3

我必须找出其中的最大版本是:38.3

我解决上述问题的算法是:

  • 删除除数字以外的所有空格或任何字符,。和输入字符串中的逗号
  • 将输入字符串拆分为不同版本的字符串数组
  • 将第一个版本作为maxVersion并删除。将该值作为maxVaue,将该值的长度作为maxLength
  • 从索引1迭代到结尾,并通过删除来格式化每个字符串。然后将长度与maxlength(如果更大)进行比较 重新指定maxLength的值
  • 将0右键附加到maxValue和currentValue,使两者具有相同的长度,即maxLength
  • 如果新值大于最大值,请重新指定maxValue变量和maxVersion变量
  • 请提供您的意见,说明如何有效地完成

    附言:这是因为只有一个max版本 但是,我们可以扩展程序来考虑具有最大版本值

    的多个版本。
    编辑:还有一个选项可以添加arraylist中的所有元素,并对集合进行排序,递归查找当前“版本控制部分”(点之间)的最高版本:

    1.4.7.2、1.6.1.2.1.2、5.6、23.7.1.1、23.0.1、34.8

    在这两者之间,第一部分最高的是
    34
    。如果没有第一节也是
    34
    的其他实例,则您已经找到了最高版本

    如果有,;我们假设a
    34.7
    ,因为您的示例没有指定这样的值;然后进程应该递归地移动到第二部分,其中
    8
    将是最高的

    1. Get rid of all non-numerical characters
    2. Change the strings to integers and check the highest number
    
    现在我们遇到了一个问题,1.4是比1.3.9更高的版本,但它会返回1.3.9作为更高的版本。所以我们这样做

    2 (rewritten). Add as many 0's to the end of the string as it's less than another, that was
    a poorly written written so say string A is 3 in length, and string B is 6 in length. 3 0's
    would be added unto the end of string A.
    
    3. Change the strings to integers and check the highest number.
    
    现在1.4将变成140,1.3.9将变成139。140>139


    编辑:如果你要投反对票,告诉我你为什么投反对票。我也想改进一下,你知道。

    这将取决于不同“部分”(点)数量的版本之间的比较是从左到右(超级优先)还是从右到左(次优先)。例如:
    1.4.7.2
    VS
    5.6
    可能意味着
    1.4.7.2
    VS
    5.6.*.*.*.
    .*.*.5.6
    ,不同的含义会产生不同的结果。