执行程序给int无法转换为java.lang.string

时间:2016-02-11 14:25:34

标签: java oop bluej

我目前正在使用BlueJ(被模块导师强迫,我讨厌它),每次尝试执行代码时都会出现错误。

  

不兼容的类型:java.lang.String无法转换为int

我的代码如下:

public class middle 
{
public static void main (String[] args)
{
    String numeroUno = args[0];
    String numeroDos = args[1];
    String numeroTres = args[2];

    double num1 = Double.parseDouble(args[0]);
    double num2 = Double.parseDouble(args[1]);
    double num3 = Double.parseDouble(args[2]);

    middle(num1, num2, num3);
}

public static void middle(double n1, double n2, double n3)
{
    double [] values = {n1, n2, n3};
    double newarr;
    boolean sorted = false;

    while(!sorted)
    {
        sorted = true;
        for(int i=0; i<values.length-1; i++)
        {
            if(values[i] > values[i+1])
            {
                double swapsies = values[i+1];
                values[i+1] = values[i];
                values[i] = swapsies;
                sorted = false;
            }
        }
    }

    System.out.print(values[1] + " is between " + values[0] + " and " + values[2]);

}
}

首先我的问题是我在哪里犯了错误,但其次,是否有另一种方法来构造这段代码,即完全重写它以实现同样的事情。我并不习惯以这种方式编写代码,而且我在使用OOP时遇到了困难。此特定练习的目的是编写代码,该代码将返回用户输入的中间值编号。

谢谢!

1 个答案:

答案 0 :(得分:3)

用于调用方法或构造函数的BlueJ的参数接口旨在使用java - 语法中的参数。因此,例如main的参数窗口将预期以以下形式输入:

{"2" , "3" , "4"}

请注意双引号,就像在java中一样。事实上,这个原则对于任何类型的构造函数都是可扩展的。例如,也可以将{new String("2"), new String("3"), ...作为参数。