如何比较数字字符串?

时间:2013-02-21 01:58:03

标签: java string

我有一个数字长度为X的数组(“32”,“49”,“2”,...),我需要找到该数组中最大的数字并返回位置(数组[3]是最大的数字)

是否有像array [0] .isLessThan(array [3])这样的库?或类似的东西?

到目前为止

计划:

int max 0

for(i=1; i<X; i++){

if(array(max).isLessThan(array[i]))
     max = i;
}

3 个答案:

答案 0 :(得分:2)

我建议您在比较两个值时将值转换为整数。

您需要跟踪最大值和索引。此解决方案假设所有值都是非负的(因为我将max设置为-1),但您可以轻松地将max更改为int min或类似的值。

int max = -1;
int index = -1;

for (int i = 0; i < array.Length; i++)
{
    int value = Integer.parse(array[i]);
    if (value > max)
    {
        max = value;
        index = i;
    }
}

此时,您拥有数组中最高值的索引。如果有多个最大值,则可以存储索引数组。

答案 1 :(得分:0)

这是我的建议。如果我错了,请纠正我。

int max 0

for(i=0; i<X; i++){

     if(array[i]).isLessThan(array[i+1]))
         max = i+1;
     else
         max = i
}

答案 2 :(得分:-1)

为了学术兴趣,一个更复杂的解决方案:):

public static void main(String[] args) {

    String[] anArrayOfStrings={"199999","32", "33", 
"10000","45","99999","72987","0","92"};
    Test test=new Test();
    Test.CX cx=test.new CX();
    java.util.Arrays.sort(anArrayOfStrings,cx) ;
    System.out.println("Item="+anArrayOfStrings[(anArrayOfStrings.length-1)]);
}

class CX<String> implements Comparator{

    @Override
    public int compare(Object arg0, Object arg1) {



        if( Integer.parseInt((java.lang.String) arg0) > 
   Integer.parseInt((java.lang.String) arg1)){

            return 1;

        }else if(Integer.parseInt((java.lang.String) arg0) < 
  Integer.parseInt((java.lang.String) arg1)){
            return -1;
        }

        return 0;
    }


}