首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在字符串数组中找到第二个最大值,其中特定元素的大小可以是1024?

如何在字符串数组中找到第二个最大值,其中特定元素的大小可以是1024?
EN

Stack Overflow用户
提问于 2021-07-04 22:27:07
回答 1查看 151关注 0票数 0

该数组包含的{"-214748364809","-214748364802"}应为"-214748364802“。

我尝试将数组元素转换为小于2147483648的整数。但是如果它包含的数字大于这个数字,我不能将它转换为整数。有没有办法比较这些数字?

EN

回答 1

Stack Overflow用户

发布于 2021-09-13 13:59:34

也有同样的问题。

代码语言:javascript
运行
复制
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);
    }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68245707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档