Java命令行争论

时间:2017-03-01 22:14:25

标签: java oop command-line-arguments

这是我的java命令行参数的代码,我试图让它工作,但它不允许我这样做。

我必须编写一个包含main方法和另一个类方法的类(因此这个类中有两个类方法)。

main方法调用另一个类方法并将其作为参数传递给三个命令行参数转换为double。

然后,类方法以特定的输出格式返回三个中间数。

用户将输入三个数字,然后输入到下面的数字类别。

这是我的第一堂课,名为Numbers:

    // import java.util.Scanner;
    // import java.util.Arrays;
    // import java.util.List;
    // import java.util.ArrayList;

    public class Numbers {

        public Numbers() {
        }

        public static void main (String[] args) {
            Middle.main(args);
        }
    }

这是我的第二个名为Middle的类,它应该与上面的Numbers类链接,它应该发送用户键入的数组双参数,然后存储然后输出回Numbers类。

public class Middle{

public void Middle()
{
}

public static void main(String[]args)
{
    double num, i, j, temp;

    double a,b,c;
    a = Double.parseDouble(args[0]);
    b = Double.parseDouble(args[1]);
    c = Double.parseDouble(args[2]);

    //USE COLLECTIONS.SORT OR BUBBLESORT

    num = input.nextDouble();

    int array[] = new int[num];

    for (i = 0; i < num; i++) 
    array[i] = input.nextInt();

for (i = 0; i < ( num - 1 ); i++) 
{
  for (j = 0; j < num - i - 1; j++) 
  {
    if (array[j] > array[j+1]) 
    {
       temp = array[j];
       array[j] = array[j+1];
       array[j+1] = temp;
    }
  }
}
    for (i = 0; i < num; i++) 
    System.out.println(array[i]);


    if(args.length ==3)
    {
    System.out.println(b + " is between " + a + " and " + c);
    }
    else
    {
    System.out.println("Error");    
    }
}

}

我正在使用BlueJ来测试我的程序,并且命令行参数在括号内输入,内部用双引号输入,即{“5”,“6.3”,“3”}。

我使用了bubblesort但是继续支持的错误是找不到符号方法nextDouble()。

格式是否正确我使用bubblesort的方式,如果没有任何建议会有所帮助。

2 个答案:

答案 0 :(得分:0)

main方法中给出的String数组args自动用空格分隔输入,所以要有一个String [] args.length = 3,你需要像5.7 8.6 22那样输入。您的程序中还有两个主要方法,因此其中一个方法不应使用“main”表示您的程序正常运行

答案 1 :(得分:0)

String[] args包含由空格分隔的参数。因此,您想要的参数应该看起来像5 6.3 3,而不是{"5","6.3","3"}

尝试使用System.out.println(Arrays.toString(args));来了解args的实际效果。