gpt4 book ai didi

java - 在 void main (String[] args) 中使用 args 的简单对称类

转载 作者:行者123 更新时间:2023-11-30 08:54:57 25 4
gpt4 key购买 nike

在一个名为 Symmetric 的类中,有一个 main() 方法。 main() 方法接受任意数量的命令行参数,包括无参数。它确定命令行参数是否对称:第一个等于最后一个,第二个等于第二个到最后一个,依此类推。如果参数是对称的,表达式

All args symmetric

被打印出来。如果发现不对称,则显示类似

的消息
Not symmetric at arg 1:b and 2:a

在数字对应于参数索引(从 0 开始)并且字母对应于实际参数的地方打印。示例运行如下。

> javac Symmetric.java 
> java Symmetric
All args symmetric
> java Symmetric a
All args symmetric
> java Symmetric a a
All args symmetric
> java Symmetric a b
Not symmetric at arg 0:a and 1:b
> java Symmetric a b a
All args symmetric
> java Symmetric a b a c
Not symmetric at arg 0:a and 3:c
> java Symmetric a b a a
Not symmetric at arg 1:b and 2:a
> java Symmetric c a b a b a c
All args symmetric
> java Symmetric c a b d b a c
All args symmetric
> java Symmetric c a b d r a c
Not symmetric at arg 2:b and 4:r

这是我的代码:

public class Symmetric{
public static void main (String[] args) {
int i =0;
int j=args.length-1;

if (args[i].equals(args[j])==false){
System.out.println ("Not symmetric at arg "+i+":"+args[i]+" and "+j+":"+args[j]);
}
while(args[i].equals(args[j]) && i<=j) {
if (i==j || i==j-1 || i==j-2){
System.out.println ("All args symmetric");
// System.exit(1);
}
i++;
j--;
}
}
}

除了前两个,我可以通过上面所有的例子。当我输入

java Symmetric
java Symmetric a

我总是得到 ArrayIndexOutofBoundsException。没有传值或者只传一个值怎么处理?

最佳答案

如果你稍微重新排序你的代码,这样你在使用它们之前总是检查索引,那么你就可以通过这些案例。

public class Symmetric{
public static void main (String[] args) {
int i =0;
int j=args.length-1;

boolean sym =true;
while(i < j) {
if (!args[i].equals(args[j])){
System.out.println("Not symmetric at arg "+i+":"+args[i]+" and "+j+":"+args[j]);
sym = false;
break;
}
i++;
j--;
}
if (sym) System.out.println ("All args symmetric");
}
}

关于java - 在 void main (String[] args) 中使用 args 的简单对称类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29271464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com