我正在为孩子们编写教程,学习Java 5平台上的编程。
从控制台程序读取文本数据的最佳方法是什么?
“最佳”是指在Java 5级别上最常见的方式。我意识到从命令行读取文本输入充满挑战,并且一个保护良好的方法必须包含几个级别的异常,这很好。在本教程的这一点上,我已经介绍了基本输出,Java中的基本程序结构,异常处理。如果您认为在用户输入之前需要涵盖其他事项,我会欢迎您提出建议。
有趣的是,在这个问题上进行网络搜索并没有立即给出答案,需要进行大量的研究,并且没有最佳实践意识。我想这是因为有太多隐藏的警告,它并不像它最初看起来那么简单。
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
class Example {
private BufferedReader br;
private String inputString;
public static void main(String[] args) {
String inputString = null;
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("\n > ");
try {
inputString = br.readLine();
} catch (IOException ioe) {
System.out.println("\n IOException called.");
}
System.out.println("\n Input was: " + inputString);
}
}
您可以使用以下命令编译它:javac Example.java
使用以下命令运行:java示例
您是否有更好的方法可以让孩子更有教育意义?有趣的是这些东西看起来基本如何,但是当你真正看到它时,这就是用很少的错误检查来收集一行文本的很多代码。
如果你想添加关于你最初如何对编程感兴趣的可选评论,我将非常感激。对我来说,这是偶然的机会(我的父亲必须把一个哑终端带回家在家工作,通过拨号连接到unix系统连接到他的工作主机,当他告诉我如何列出'游戏'时我被迷住了。
感谢您的帮助。
答案 0 :(得分:10)
扫描仪非常基本且代码少。
import java.util.Scanner;
class Example{
public static void main(String args[]){
Scanner s = new Scanner(System.in);
String inputString = s.nextLine();
//Output stuff
}
}
答案 1 :(得分:1)
我认为Scanner
比BufferedReader
更容易。这就是我最初学习用户输入的方式。
你必须做一些相同的事情,但你可以不用处理异常处理,并在晚些时候尝试/捕获。
答案 2 :(得分:1)
一些修辞问题:
孩子年龄多大?
您在教育成果方面的目标是什么?或者这主要是为了给他们一些有趣的事情。
您的Java使用经验水平是什么?
我的直觉是你不应该过度使用“最佳实践”的东西。假设这些是学龄儿童,他们不需要它,他们可能没有理解它的前景。所以对于他们中的大多数人来说,这将是无聊的等等,并且是一种很好的方式来解决它。
此外,如果你自己不完全了解它,很难教授“最佳实践”。我看待它的方式,“最佳实践”是关于大多数时候最好的技术。要正确地教他们,你需要理解(并能够解释)他们工作的原因,以及何时不工作。如果您对“非最佳实践”的做法有所了解,这也有帮助......这样您就可以解释其中的差异。
(我也问你为什么要限制自己使用Java 5 ......但这并不是特别相关。)
当我询问“教育成果”时,我的意思是:
这是教学业务中的某个人应该问自己的第一个问题。
话虽如此,我想我会坚持上面的建议。如果你想打鼓关于“最佳实践”,请尝试构建你的材料,以便普通孩子很容易跳过“无聊”的位。
答案 3 :(得分:1)
我的想法是,当孩子们使用JOptionPane在新屏幕上看到他们的结果时会更加兴奋。
import javax.swing.JOptionPane;
public class test{
public static void main(String[] args){
String name=JOptionPane.showInputDialog(null,"Enter your name");
JOptionPane.showMessageDialog(null, "Your Name: " + name);
}
}