我试图将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();
}
}
答案 0 :(得分:3)
两个问题:您找到的是最大值,而不是最小值,按字母顺序表示忽略compareTo
不执行的情况。
反转比较以找到最小值。
if (i < 0)
使用the compareToIgnoreCase
method按字母顺序比较字符串。
int i = k.compareToIgnoreCase(temp);