Java 如何设置命令行输入的条件以避免输出中的第一个值
我正在写一个程序,有两个条件“orgi”和“sort”。Orgi按插入顺序显示输入。排序按插入顺序以及按字母顺序显示输入 在我的代码的输出中,if条件“orgi”和“sort”也会显示出来。我如何解决这个问题 命令行输入为:排序“raam”“ram”“ravi” 替换此项:Java 如何设置命令行输入的条件以避免输出中的第一个值,java,arrays,sorting,Java,Arrays,Sorting,我正在写一个程序,有两个条件“orgi”和“sort”。Orgi按插入顺序显示输入。排序按插入顺序以及按字母顺序显示输入 在我的代码的输出中,if条件“orgi”和“sort”也会显示出来。我如何解决这个问题 命令行输入为:排序“raam”“ram”“ravi” 替换此项: for (String s: args) 为此: for (int i = 1; i < args.length; i++) { System.out.println(args[i]); } for(int
for (String s: args)
为此:
for (int i = 1; i < args.length; i++) {
System.out.println(args[i]);
}
for(int i=1;i
您需要在没有第一项的情况下获取剩余的参数。我能想到的最简洁的方法是:
Arrays.asList(args).subList(1, args.length);
然后需要使用集合进行排序。排序
而不是数组。排序
。要将其返回阵列,如果需要,可以使用:
String[] rest = Arrays.asList(args)
.subList(1, args.length)
.toArray(new String[args.length - 1]);
您可以使用创建所需数据的单独副本以供进一步使用
String[] args_data = new String[args.length-1];
// length of args_data will be one less element than args so args.length-1
System.arraycopy(args, 1, args_data, 0, args.length-1);
// copy elements into args_data from args , starting from args[1]
// args_data will contain only data as "raam", "ram", "ravi"
因此,使用args\u数据
进行排序和显示,但在if
条件内除外
e、 g
程序运行正常,唯一的问题是您正在考虑将用于条件检查的第一个参数也作为排序的输入。这应该是
args.length
Oops,谢谢David@我很高兴能帮上忙,很高兴
String[] args_data = new String[args.length-1];
// length of args_data will be one less element than args so args.length-1
System.arraycopy(args, 1, args_data, 0, args.length-1);
// copy elements into args_data from args , starting from args[1]
// args_data will contain only data as "raam", "ram", "ravi"
if(args[0].equals("orgi"))
{
for (String s: args_data )
{
System.out.println(s);
}
}
if(args[0].equals("sort"))
{
for(String s: args_data )
{
System.out.println(s);
}
Arrays.sort(args_data );
for (String s: args_data)System.out.println(s);
}