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
中你的命令行参数是 100
和 c
和 f
-- 有三个参数,但是你在 [= 中检查五个参数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 转换。
我正在学习使用 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
中你的命令行参数是 100
和 c
和 f
-- 有三个参数,但是你在 [= 中检查五个参数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 转换。