黑马程序员技术交流社区

标题: 还是不理解,打印出从命令行获取的三个自变量,不需要写输入函数吗Scanner [打印本页]

作者: hmYing    时间: 2013-8-3 17:23
标题: 还是不理解,打印出从命令行获取的三个自变量,不需要写输入函数吗Scanner
public static void main(String[] args) {
    System.out.println(args[0]+","+args[1]);
}
这是怎么回事呢,为什么不需要输入函数Scanner,就知道main函数后面的参数是变量名为args的字符串数组,可是main函数的函数体里面也没有提示输入,也没有定义Scanner变量进行接收,为什么可以直接输出,求解答...谢谢!
作者: 肥猫    时间: 2013-8-3 19:22
你没有写的话应该是会报角标越界异常的.
作者: chslzj    时间: 2013-8-3 19:24
肥猫 发表于 2013-8-3 19:22
你没有写的话应该是会报角标越界异常的.

少年,你害人不浅啊,不讲清楚,哎
作者: 肥猫    时间: 2013-8-3 19:26
chslzj 发表于 2013-8-3 19:24
少年,你害人不浅啊,不讲清楚,哎

大高手,你替我说清楚呗.
作者: 狐灵    时间: 2013-8-3 19:52

通过命令行启动程序,后面添加字符串会被识别为参数,按空格进行分割,被截后存到args数组里面。        

作者: 木偶_freedom    时间: 2013-8-3 20:10
建议楼主 百度 “命令行参数”
作者: oath    时间: 2013-8-3 20:30
本帖最后由 oath 于 2013-8-3 20:32 编辑

呵呵,楼主的语言很模糊,你看下我说的可不可以解决你的疑惑
在API中可以查找到:
1、System是java.lang中的一个类,
2、out是System类的静态属性,且out返回的是“static PrintStream”,
3、println是PrintStream类中的一个方法,这个方法可以打印传入的参数。
(System.out)是java.io包中的PrintStream类,它调用了自己的方法println(),实现了输出功能。

作者: chslzj    时间: 2013-8-3 21:11
肥猫 发表于 2013-8-3 19:26
大高手,你替我说清楚呗.

可惜我不是,我在等你回复呢
作者: 肥猫    时间: 2013-8-3 21:20
chslzj 发表于 2013-8-3 21:11
可惜我不是,我在等你回复呢

我也不会啊,怎么办?~~。坐等斑竹小苗大神进来解决。
作者: chslzj    时间: 2013-8-3 21:22
肥猫 发表于 2013-8-3 21:20
我也不会啊,怎么办?~~。坐等斑竹小苗大神进来解决。

擦,坐等有用么,各种@起来啊
作者: 吴光新    时间: 2013-8-3 22:18
我理解能力查,没看懂你的问题是在问什么,如果你想问从命令行里运行程序,类名后面加参数,多个参数之间用空格分开,这样执行就可以被主函数接收,会自动用空格分割为字符串数组,这个问题在毕老师和张老师的视频里都有讲过的。参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。此外在其他类中直接使用main()函数,并传递参数也是可行的,虽然这种方法不太常用,但毕竟为我们提供了一种选择。具体百度“主函数传值”
作者: 神之梦    时间: 2013-8-3 22:28
肥猫 发表于 2013-8-3 21:20
我也不会啊,怎么办?~~。坐等斑竹小苗大神进来解决。

你 丫的肥猫,你捅的篓子让我来解决啊
快点自己想办法解决
作者: 神之梦    时间: 2013-8-3 22:31
楼主可以直接试下你那个代码




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2