请说明如何通过字符串参数传递参数



我开始说我的IDE是eclipse。我试着做一个程序,通过名字找到特定人的电话号码。这是代码

class HelloWorld {
public static void main(String args[]) {
String numbers[][] = {
{"Tom", "555-3322"},
{"Mary", "555-8976"},
{"Jon", "555-1037"},
{"Rachel", "555-1400"},
};
int i;
if(args.length != 1)
System.out.println("Usage: java Phone <name>");
else {
for(i=0; i<numbers.length; i++) {
if(numbers[i][0].equals(args[0])) {
System.out.println(numbers[i][0] + ": " + numbers[i][1]);

break;
}
}
if(i == numbers.length)
System.out.println("Name not found");
}
}
}

我发现在一些论坛上,为了让它发挥作用,我必须去跑步->运行配置->论点。因此,我将程序参数设置为"0";玛丽";输出是正确的,显示了我的名字(玛丽(和电话号码(555-8976(。这是正确的方法还是有更好的方法?

您的代码目前可以很好地使用运行时参数,正如您在IDE中使用运行配置设置时所看到的那样。您也可以在命令行上编译它(不使用IDE(,然后执行java Phone Mary

如果您希望请求交互式用户输入(而不是运行时参数(,则必须使用类似Scanner的东西进行重构。

传递参数的方式很好,但有时最好问问自己,哪一个是做某事的最佳选择,而不是仅仅坚持一个想法,并询问如何将这个想法特别应用到现实世界中。

要执行这种类型的键值操作,我建议使用HashMap。如果你不了解他们,那没关系,还有其他方法可以做你想做的事。不过,我强烈建议学习它们,因为它们让这类任务变得非常容易。

基本上,HashMap是一个存储有值的对象,要访问这些值,需要指定一个键。例如:

密钥-------值

名称:--";玛丽";

编号:";12335635";

年龄:-----"64〃;

请记住,所有的键都必须是相同的类型(通常我们使用String(,值也应该是相同类型,这就是为什么我把数字放在引号里的原因。也许这个例子不是最好的,但键类型和值类型不必相同。你可以让你的键是字符串,你的值是int。

我推荐这篇文章:Java中的HashMap,当然还有Java文档。

最新更新