Java比较没有按照我的意图工作

时间:2015-01-14 17:58:49

标签: java

我试图将java语句与命令行输入进行比较。如果我给它多个单词,如

Cox jerry bridges alpine rollin

它应该打印出高山(按字母顺序排列第一个),但它没有这样做。我希望它按字母顺序打印出第一个命令行参数

知道为什么这个程序无效?

package Min;

public class Min {

public Min(String[] args)
{

    String temp;
    if (args.length >0)
        temp = args[0];
    else
       throw new IllegalArgumentException("need command line arg");
    for(String k : args)
    {
        int i = k.compareTo(temp);
        if ( i > 0) //k > temp
        {
            temp = k;
        }
    }
    System.out.println(temp);

}


public static void main(String[] args) {
   new Min(args);//Test1 new();
}

}

1 个答案:

答案 0 :(得分:3)

两个问题:您找到的是最大值,而不是最小值,按字母顺序表示忽略compareTo不执行的情况。

  1. 反转比较以找到最小值。

    if (i < 0)
    
  2. 使用the compareToIgnoreCase method按字母顺序比较字符串。

    int i = k.compareToIgnoreCase(temp);