包含两个method
作为参数的Strings
。
字符串是无限长度。仅包含数字。
数字是整数,非负。
字符串包含4个数字,以点分隔。
第一个String
示例:8.1.13.41
第二个String
示例:8.1.009.125
数字可以以零开头。
方法应返回“最旧的” String
。
像游戏中一样(游戏1.0、1.0.1、1.0.2、1,1、2.0等版本)
在这种情况下,8.1.13.41
比8.1.009.125
早
我认为最好的方法应该将字符串转换为array
。然后按单元格进行比较
如果数组为int[] arr = Arrays.
stream(s2.split("\\."))
.mapToInt(Integer::parseInt)
.toArray();
个值; [8, 1, 9, 125]
显然是不正确的。
如果数组double[] arr = Arrays.
stream(s2.split("\\."))
.mapToDouble(Double::parseDouble)
.toArray();
个值;数组中的[8.0, 1.0, 9.0, 125.0]
值不正确。
我需要获取[8, 1, 009, 125]
,但我认为值009不可能。
我的问题是
如何从方法中重新运行“最旧的”字符串。
如果无法使用数组,该怎么办?
如果现在不清楚,我不知道如何将它提供给您。
答案 0 :(得分:1)
根据我所看到的,数据集使用.
字符作为小数点和定界符。除非有明确的规则允许我们拆分数据,例如每个double
的长度应为3个字符,我认为我们不做任何假设就不能解决这个问题。