有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何比较数字字符串?

我有一个长度为X的数字字符串数组(“32”、“49”、“2”、…)我需要在这个数组中找到最大的数字并返回位置(数组[3]是最大的数字)

是否存在类似于数组[0]的库。isLessThan(数组[3])?还是类似的

到目前为止:

int max 0

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

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

共 (3) 个答案

  1. # 1 楼答案

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

    你需要跟踪最大值和索引。这个解决方案假设所有的值都是非负的(因为我将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;
        }
    }
    

    此时,就有了数组中最高值的索引。如果有多个最大值,可以存储一个索引数组

  2. # 2 楼答案

    为了医学界的利益,一个更复杂的解决方案:):

    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;
        }
    
    
    }
    
  3. # 3 楼答案

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

    int max 0
    
    for(i=0; i<X; i++){
    
         if(array[i]).isLessThan(array[i+1]))
             max = i+1;
         else
             max = i
    }