A close mouth catches
no flies.
病从口入
在我刚接触java的时候,总是采用对话框来实现数据的输入和程序实现互动,以至于有一次期末java考试的时候,自己习惯于采用对话框编写程序,写出来的程序很不实用,到处都是框框,虽然功能上倒是实现了,但总归是一段不堪回首的往事,糗事一桩。
从互动中来学习一门语言,一直也是我很喜欢的第一种方式,很多人建议学习程序之前,要先能看到程序执行结果,要可以对程序输入一些数据来进行互动,来看看不同输入产生什么样的结果,这也是我学习程序设计的时候,我的老师所推荐的一种方式,个人也很认同这种方式,就从这里开始吧
言归正传,说说java程序在命令行模式下与程序互动,在java中,在命令行模式下输入值,个人认为常用的方法有三种,
一种是直接在运行程序时,在命令行后面直接添加所要输入的字符串,注意,在这是字符串,来看代码
public class TerDemo1{
public static void main(String args[]){
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}
图4-1是我的编译,运行过程,结果
图4-1后缀参数编译运行过程,结果
对代码做一下解释,args.length的意思是取得字符数组args里面的元素个数,在它运行时我输入了两个参数,一个hello,一个world,所以代码的打印语句供共行了两次,输出的结果见图4-1
刚才在dos界面下进行编译程序的是否,偶然敲了下tab键,发现可以实现文件名的补全,用过linux的人,应该知道在linux的Terminal中,tab见具有补全的功能,
dos下竟然也有,这还真是俺第一次发现
第二种 使用Scanner类
在javase6中,可以使用java.util.Scanner类取得用户的输入,这个类是比较人性化的,来看看它的使用吧,先看代码
import java.util.Scanner;
public class ScanDemo{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String str = scan.next();
System.out.println(str);
}
}
图4-2是Scanner类型的编译运行结果
图4-2 ScanDemo的编译运行结果
在代码中,由于引入的Scanner类不在默认引入的包之内,所以必须要显式的引入,new表示要新建一个类,而在新建的Scanner类中需要有一个System.in的对象,可以这样来理解,System.in实现了数据的接收,是单纯的接收,而Scanner是对它进行了后期的处理,next方法可以看作是一个筛子,它使得接收的数据比较明确,只接受字符串,或者接收的东西当作字符串来处理,当然Scanner还有其它的方法来实现不同类型数据的输入,具体别的输入,您可以查询api,来做做变换,javase的api很重要,学会查询api是非常非常重要的能力,具体如何使用api,可以百度或者谷歌下
在上面的图里面你会发现,我输入了hello world,却只是输出了hello,这是为什么呢?这是因为Scanner把空格也作为了输入的结束符,所以,我们只看到了hello,可是使用空格的地方有很多啊,总不能每次都一气写完了再说吧?这怎么行!!!,第三中方法解决了这个问题
第三种 使用BufferedReader类
对于Scanner类而言,输入的结束符,依次是空格符,tab,和enter键,可是只是一个空格就结束输入,这确实让人难以忍受,BufferedReader解决了这个问题,这个类有些复杂,不过,不用担心,从目前来看,会用就行,理解,慢慢就可以实现的
话不多说,先看代码吧
import java.io.*;
public class BufferedDemo{
public static void main(String[] args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine();
System.out.println(str);
}
}
图4-3BufferedDemo的编译运行结果
在代码中由于使用BufferedReader的方法readLine,就必须要处理java.io.Exception异常,异常处理机制是javase为开发人员捕捉可能发生的错误提供的机制,现在,所有异常一律抛出,不做处理(throws IOException),嗯,这个BufferedReader对象的建立过程比较麻烦,这样理解吧,你可以认为,他是在一个水桶上接了一个管子,在这个管子上,它又接了另一根管子,目的是使流出的水,满足我们的要求,目前,先这么理解吧
看结果,会发现,这次输入了hello world,输入是hello world,空格保留
- 大小: 2.5 KB
- 大小: 2.3 KB
- 大小: 2.5 KB
分享到:
相关推荐
### JDK 5.0 学习笔记精要:...通过上述内容的深入探讨,我们不仅理解了Java的基础语法,还掌握了如何在命令行模式下编写和运行简单的Java程序。随着学习的深入,Java的强大功能和广泛的应用领域将逐渐展现在你面前。
【标题】"rpg-first:命令行界面的战斗游戏"是一个基于Java开发的文本冒险游戏,它通过命令行界面提供玩家交互体验。这种类型的游戏通常被称为“角色扮演游戏”(Role-Playing Game,简称RPG),它允许玩家创建或选择...
- **显示信息**:在命令行模式下显示信息是通过`System.out.println()`或`System.out.print()`方法实现的。 - **Console互动**:程序可以使用标准输入流`System.in`读取用户输入的数据。 - **数据类型**:Java支持...
Java 编写的留言板程序是一种基于Java编程语言实现的交互式应用程序,它允许用户在系统上发布消息、查看他人留言,并进行基本的互动操作。在这个简单的Java小程序中,开发者通常会运用到面向对象的设计原则,包括类...
这些源代码可能涵盖了一些典型的示例程序,如简单的命令行应用、图形用户界面(GUI)应用,甚至可能是基于Web的Java EE项目。 总的来说,这个Java培训课程是初学者和有一定经验的开发者提升技能的良好资源。它以实例...
在Java程序设计中,学生可以通过小组合作完成小型项目,如实现简单的命令行工具、设计游戏等,这样不仅锻炼了编程能力,还培养了团队协作和问题解决能力。 4. **反馈与评估阶段**:教师通过观察学生在课堂上的表现...
5. **DEBUG模式**:标签中提到了"JAVA DEBUG",这意味着脚本可能也支持在调试模式下启动JAR,通过指定`-agentlib:jdwp`选项,开发者可以远程连接到JAR应用进行调试。 6. **错误处理和重试机制**:为了增加脚本的...
综上所述,《Java程序设计》课程的教学设计应着眼于提升学生实践能力与创新思维,通过整合教学资源、创新教学模式、运用项目教学法和优化评价体系等多方面的措施,形成一个多层次、全方位的教学体系。这不仅有助于...
Java的出现改变了这一现状,使得使用Java语言编写的Applet程序可以在任何客户端系统上下载并在浏览器中运行,从而大大增强了网页的互动性和功能性。 #### 二、Java虚拟机(JVM) Java虚拟机(JVM)是一种能够运行Java...
WebSocket是Web应用程序中一种实时通信协议,它允许服务器与客户端之间进行双向通信,极大地提高了数据传输效率和实时性。在“java html js websocket”这个主题中,我们将深入探讨WebSocket技术,以及如何使用Java...
通过Java-Text-Adventure项目,学生不仅可以学习到Java编程的基本语法,还能深入理解面向对象的设计模式和软件工程的最佳实践。这个项目为初学者提供了一个实际操作的平台,让他们能够在实践中巩固理论知识,提升...
总结起来,翻转课堂在《Java程序设计》教学中的应用,通过预习、互动讨论、强化实践和多元评估,有效地提升了教学质量,培养了学生的自主学习能力和编程实践能力,是适应信息化时代需求的有益尝试。
了解如何打包和部署Java应用程序,包括JAR文件的创建和命令行执行。 16. **分布式计算** Java的RMI(远程方法调用)和JMX(Java管理扩展)允许在分布式环境中进行跨网络的交互和管理。 这本书通过丰富的图表、...
《抽卡人生》是一款基于Java编程的小游戏,它展示了初学者如何通过编程实现一个互动性的游戏。在这个项目中,开发者虽然在面向对象编程(OOP)方面经验不足,但通过堆砌代码的方式,仍然实现了基本的游戏功能。下面...
**在命令行模式下与程序互动**是Java开发的基本技能之一。Java程序可以接受来自用户的输入,这通常通过标准输入流(System.in)完成。课程提到了两种获取用户输入的方法: 1. **使用Scanner类**:`java.util....
4. **数据序列化与反序列化**:在网络传输过程中,Java对象需要被转换为字节流(序列化),在接收端再恢复为原来的对象(反序列化)。Java提供了`Serializable`接口和`ObjectInputStream`、`ObjectOutputStream`类来...
2. **`java.exe`**:这是 Java 应用程序启动器,允许开发者在命令行环境中运行 Java 程序。只需要指定主类名称即可启动 Java 应用程序。它是运行 Java 程序的核心工具。 3. **`appletviewer.exe`**:此工具用于...
统开发主要采用微信小程序作为前端...总的来说,这个项目结合了微信小程序的便捷性、SpringBoot的高效服务构建能力以及SSM框架的灵活数据处理,旨在创建一个高效、便捷的电子商城购物平台,提升商家和用户的互动体验。