Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的命令行和数组_Java_Arrays_Command Line - Fatal编程技术网

Java中的命令行和数组

Java中的命令行和数组,java,arrays,command-line,Java,Arrays,Command Line,我正在学习使用Java的数组和命令行参数。我们编写了一个从摄氏度到华氏度的转换程序。我为我的项目开始了一个基本的想法,但不确定我是否做对了(我是初学者) 当我提供命令行参数时,它应该是以下形式: Java TempConversion 100 c f 我的问题是:我的命令行参数是否正确?虽然我仍然有相同的输出,但似乎我做错了什么。 如何在输出中以特定度数显示数组?遵循以下步骤: 低于0度=非常冷 从0到32=冷 从33到50=轻度 从51到60=非常轻微 从61到70=温暖 从71到90=非常温

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

当我提供命令行参数时,它应该是以下形式:
Java TempConversion 100 c f

我的问题是:我的命令行参数是否正确?虽然我仍然有相同的输出,但似乎我做错了什么。 如何在输出中以特定度数显示数组?遵循以下步骤:

低于0度=非常冷

从0到32=冷

从33到50=轻度

从51到60=非常轻微

从61到70=温暖

从71到90=非常温暖

高于90=热

有几件事:

  • “Java”和程序名(TempConversion)不是参数。之后的一切都是。所以当你把args.length5您没有计算程序名和java关键字。您应该使用args.length!=3(相对于5)

    • e、 参数(在本例中)是{“100”,“c”,“f”},赋值为0,1,2
编辑:

有人问了一个关于如何获取程序名和java关键字的问题

  • java关键字是一个常量。也就是说,您可以对所有程序使用“Java”
  • 要查找类名,请参见post。这是我的实现。应该有用

  • 这可能不会给您带来太多的悲伤,但我不认为这些括号从字符串[]天开始到第[6]=。。。;" }". 不需要它们,String[]可以在任何地方设置和使用元素(不需要大括号)。其他一切看起来都很好


java TempConversion 100 c f
中,您的命令行参数是
100
c
f
——有三个参数,但在
if(args.length!=5)
这与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]);
        }
    }
}
您的输出应该是

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

您也没有看到“c”或“f”参数。也许您打算添加到您的程序中,这样它们会告诉您是否要执行C->F或F->C转换。

如果执行
java TempConversion 100 C F
,您希望程序的输出是什么?我希望它从一眼就能将摄氏度转换为华氏度,但这根本不是你的程序要做的。如果你只使用实际的度数,为什么你要从命令行中读取
Java
TempConversion
c
f
?我没有很好地理解命令行参数。你能告诉我我到底需要做什么吗?请如果我想让“Java”和“Temp Conversion”成为参数的一部分,我该怎么办?@Jin“Java”(应该是“Java”小写字母j)调用程序和“TempConversion”不是参数,你不能让它们成为参数。@Jin我回答了你的问题。现在我明白它的意思了,非常感谢。所以知道我应该把我的函数“9.0/5.0*(degree+32)”放在哪里,因为我认为它不应该在那里。我现在得到了
(args.length!=3)
。但是我应该把我的函数
9.0/5.0*(degree+32)
放在程序的什么地方呢?如果我用另一种方式进行转换(F->C)。我该怎么办?我可以超载吗?
javac c2f.java
java c2f 100 c f
args.length is 3
arg[0] is 100
arg[1] is c
arg[2] is f