该数组包含的{"-214748364809","-214748364802"}应为"-214748364802“。
我尝试将数组元素转换为小于2147483648的整数。但是如果它包含的数字大于这个数字,我不能将它转换为整数。有没有办法比较这些数字?
发布于 2021-09-13 13:59:34
也有同样的问题。
public static String secondMax(String[] ar) {
if (ar == null || ar.length == 0 || ar.length == 1)
return "-1";
try {
String largest = ar[0];
String secLargest = null;
for (int i = 1; i < ar.length; i++) {
String item = ar[i];
if(compareTo(item, largest) == 0)
continue;
if (compareTo(item, largest) > 0) {
secLargest = largest;
largest = item;
} else if (secLargest == null || compareTo(item, secLargest) > 0) {
secLargest = item;
}
}
return Objects.requireNonNullElse(secLargest, "-1");
} catch (Exception e) {
throw new InternalError(e);
}
}
static int compareTo(String ist, String sec)
{
if(ist.contains("-") && !sec.contains("-"))
return -1;
if(!ist.contains("-") && sec.contains("-"))
return 1;
if(ist.contains("-") && sec.contains("-"))
{
String temp = ist;
ist = sec;
sec = temp;
}
if (ist.length() > sec.length())
{
return 1;
}
else if(ist.length() < sec.length())
{
return -1;
}else {
return ist.compareTo(sec);
}
}https://stackoverflow.com/questions/68245707
复制相似问题