Java 中的命令行和数组

Command Line and Array in Java

我正在学习使用 Java 的数组和命令行参数。我们编写了一个将摄氏度转换为华氏度的程序。我为我的项目开始了一个基本的想法,但不确定我做对了(我是初学者)。

public class Implementation 
{
    public static void main(String[] args)
    {
        {
        String[] days = new String[7];
        days[0] = "Very Cold";
        days[1] = "Cold";
        days[2] = "Mild";
        days[3] = "Very Mild";
        days[4] = "Warm";
        days[5] = "Very Warm";
        days[6] = "Hot";
        }
        if (args.length != 5)
        {
            System.out.println("Error! Please try again.");
            System.exit(0);
        }
        else
        {
            String name;
            String convert;
            double degree;
            String celsius;
            String fahrenheit;

            name = args[0];
            convert = args[1];
            degree = Double.parseDouble(args[2]);
            celsius = args[3]; 
            fahrenheit = args[4];         

            System.out.printf("%n%s Celsius is %.2f Fahrenheit\n", args[2], ( 9.0 / 5.0 *  (degree + 32)));
        }
    }
}

当我提供我的命令行参数时,它应该是这种形式:
Java 温度转换 100 c f

我的问题是:我的命令行参数是否正确?看起来我做错了什么,尽管我仍然有相同的输出。 如何在特定度数的输出中显示我的数组?按照这个:

Below 0 degrees = Very cold

From 0 to 32 = Cold

From 33 to 50 = Mild

From 51 to 60 = Very mild

From 61 to 70 = Warm

From 71 to 90 = Very warm

Above 90 = Hot

几件事:

  • "Java" 和程序名称 (TempConversion) 不是参数。之后的一切都是。因此,当您输入 args.length != 5 时,您没有计算程序名称和 java 关键字。您应该使用 args.length != 3(而不是 5)。

    • 例如参数(在示例中)是 {"100", "c", "f"} 和赋值 0, 1, 2.

编辑:

有人问如何获取程序名称和java关键字。

  • java关键字是常量。也就是说,您可以对所有程序使用 "Java"。
  • 找到class名字可以看到thispost。这是我的实现。应该管用。

  • 这可能不会给您带来太大的悲伤,但我看不出这些括号从 String[] 天左右开始到 day[6] =... 结束的原因; “}”。不需要它们并且 String[] 可以具有在任何地方设置和使用的元素(不需要大括号)。其他一切看起来都很好。

java TempConversion 100 c f 中你的命令行参数是 100cf -- 有三个参数,但是你在 [= 中检查五个参数17=] 这与 C 不同,其中 argv[0] 是程序名称本身。

你可以用一个最小的程序看到这个

public class c2f
{
    public static void main(String[] args)
    {
        System.out.println("args.length is " + args.length);

        for (int i=0; i<args.length; i++) {
            System.out.println("arg[" + i + "] is " + args[i]);
        }
    }
}

运行这就是

javac c2f.java
java c2f 100 c f

你的输出应该是

args.length is 3
arg[0] is 100
arg[1] is c
arg[2] is f

您也没有查看 "c" 或 "f" 参数。也许您打算添加到您的程序中,以便它们告诉您是要进行 C->F 还是 F->C 转换。