java中如何实现从控制台获取键盘上输入的信息内容

java中如何实现从控制台获取键盘上输入的信息内容,第1张

用Scanner,比如

Scanner sc = new Scanner(Systemin);

int n = scnextInt();

String str = scnext();

在下面这个程序中String args[]起什么作用?我学过C++,String args[]与C++中的什么类似?如果是C++,想要输出字符串只要在下面写cout<<""<<endl;就可以了,void main()中的括号为空,而java中为什么要写String args[]呢?

class Example{

public static void main(String args[]){

Systemoutprintln("This is a simple Java program");

}

} 问题补充:既然String args[]或者String[] args表示给主方法传一个字符串数组,那么Systemoutprintln(args[]);为什么是错误,args[]不就是那个字符串This is a simple Java program吗?

String args[]与This is a simple Java program是什么关系?如果没关系,为什么程序中去掉String args[]会出现错误?

不带String args[]的main函数和带String args[]的main函数有什么区别吗?String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如main函数所在的类名为test 那么你在cmd运行 java test a b c 时,args[0] = a ,args[1]=b, args[2]=c 你就可以在你的程序中调用你输入的这些变量了。

args[]不就是那个字符串This is a simple Java program吗?

-------完全不是的,你理解不对。这样好了,你在运行的时候加个参数,比如 java test XX。然后在你的main函数里面加这段话:Systemoutprintln("arg is"+args[0]),然后看看输出是什么?

是不是这个:

This is a simple Java program

arg is XX

你还可以试试这样,在运行时输入java test xx yy zz,并且在你的main函数里面加这段话:Systemoutprintln("arg is"+args[0]+" "+args[1]+" "+args[2]),然后看看输出是什么?

是不是:

This is a simple Java program

arg is xx yy zz

现在你理解了吗。。。

如果没关系,为什么程序中去掉String args[]会出现错误?

--------之所以去掉会出错在于,不带String args[]的main函数和带String args[]的main函数,本质上已经不是同一个函数了,java 本身不存在不带String args[]的main函数,所以当然出错了。====================================================String[] args是main函数的形式参数,,可以用来获取命令行用户输入进去的参数。如果你是java的初学者,编写一些简单的小程序是用不到它的,但是你在写程序的时候不管用的到用不到,声明main函数的时候一定要在括号里写上它,否则会报错。

我再给你举个用到String[] args的例子,可能语法上有错误,因为我手边没有java的书,而且我也只是个本科生,水平有限,权当给你理解用。

class Example

{

public void main(String[] args)

{

Systemoutprintln(args[0]);

Systemoutprintln(args[1]);

}

}

那么这个程序在执行的时候就需要向main函数传递形式参数的值,好让main函数完成打印的功能。

注:String[] args显示args是一个String类型的数组,args[0]、args[1]是头两个元素。

上面那个小程序执行的时候是这样:

首先,和其他的java程序一样,在命令提示符那个框框里输入

javac Examplejava

再输入

java Example straul good

后面两个字符串随便写什么,它们作为实参传入main函数,straul传入args[0],good传入args[1]。

那么屏幕会出现:

straul

good

这和在main函数里调用其他函数并且向被调用函数传递参数是一样的道理,只不过传给main函数罢了。

这是我的理解,可能有问题,不过凭我学java的所得,我就是这么理解的。

RunTimeexec("这里是命令");

那就首先说点Runtime类吧,他是一个与JVM运行时环境有关的类,这个类是Singleton的。我说几个自己觉得重要的地方。

1、RuntimegetRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法。

2、Runtime上其他大部分的方法都是实例方法,也就是说每次进行运行时调用时都要用到getRuntime方法。

3、Runtime中的exit方法是退出当前JVM的方法,估计也是唯一的一个吧,因为我看到System类中的exit实际上也是通过调用Runtimeexit()来退出JVM的,这里说明一下Java对Runtime返回值的一般规则(后边也提到了),0代表正常退出,非0代表异常中止,这只是Java的规则,在各个 *** 作系统中总会发生一些小的混淆。

4、RuntimeaddShutdownHook()方法可以注册一个hook在JVM执行shutdown的过程中,方法的参数只要是一个初始化过但是没有执行的Thread实例就可以。(注意,Java中的Thread都是执行过了就不值钱的哦)

5、说到addShutdownHook这个方法就要说一下JVM运行环境是在什么情况下shutdown或者abort的。文档上是这样写的,当最后一个非精灵进程退出或者收到了一个用户中断信号、用户登出、系统shutdown、Runtime的exit方法被调用时JVM会启动shutdown的过程,在这个过程开始后,他会并行启动所有登记的shutdown hook(注意是并行启动,这就需要线程安全和防止死锁)。当shutdown过程启动后,只有通过调用halt方法才能中止shutdown的过程并退出JVM。

那什么时候JVM会abort退出那?首先说明一下,abort退出时JVM就是停止运行但并不一定进行shutdown。这只有JVM在遇到SIGKILL信号或者windows中止进程的信号、本地方法发生类似于访问非法地址一类的内部错误时会出现。这种情况下并不能保证shutdown hook是否被执行。

在中间加上这行:Scanner scan1 = new Scanner(Systemin);

sop("");

sop("请输入图书评分!");

double newScore = 0;

try{

newScore = scan1nextDouble();

}

以上就是关于java中如何实现从控制台获取键盘上输入的信息内容全部的内容,包括:java中如何实现从控制台获取键盘上输入的信息内容、java中如何获取键盘输入值,main()函数中的string args【】数组有什么作用、如何在java中调用键盘命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9303505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存