查找java版本最大值的逻辑
我的任务是找出给定输入中逗号分隔的组件的最大可用版本 输入如下: 1.4.7.2、1.6.1.2.1.2、5.6、23.7.1.1、23.0.1、38.3 我必须找出其中的最大版本是:38.3 我解决上述问题的算法是:查找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
编辑:还有一个选项可以添加arraylist中的所有元素,并对集合进行排序,递归查找当前“版本控制部分”(点之间)的最高版本: 1.4.7.2、1.6.1.2.1.2、5.6、23.7.1.1、23.0.1、34.8 在这两者之间,第一部分最高的是
34
。如果没有第一节也是34
的其他实例,则您已经找到了最高版本
如果有,;我们假设a34.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
VS5.6
可能意味着1.4.7.2
VS5.6.*.*.*.
或.*.*.5.6
,不同的含义会产生不同的结果。