java入门教程:获取一个包含空格的输入

  回顾一下上节课,我们从键盘获取了一个输入,实现了与程序的互动,然而当我们要输入一行信息时候,比如
    I LOVE THIS GAME
的时候,系统显示给我们却只是一个 “I”,这是因为Scanner取得输入的键或者是回车键的时候,Scanner就会返回到下一个输入。依据是空格符,当输入为空格键,TAB。
    那怎么获取一个包含空格的输入呢?可以使用下面的方法:

import java.io.*; 
public class Input{ 
 public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
 System.out.println("请输入一行文字,可以有空格:"); String str = br.readLine(); 
System.out.println(str); 
 } }

    保存为Input.java文件后(注意这里,保存文件名必须与类名保持一致)编译并运行,就可以实现输入:

I LOVE THIS GAME 
 I LOVE THIS GAME

    下面来分析这段代码,首先出现了一个

import java.io.*;


    这里表明我们将要使用的这个类是放在java.io下面的某个包中的,*表示 所有内容,比如用到的BufferedReader和InputStreamReader都是java.io中的类。
?
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    上节课我们使用的获得输入的方法中定义了一个
Scanner s = new Scanner(System.in);
    这里可能会让人觉得迷惑,我们知道“=”前面的是定义了一个引用变量br,后面呢new表示新建了一个BufferedReader对象,通过“=”把两者联系起来了,在上面一句中,我们定义了一个BufferedReader类型的对象,这个对象是以一个InputStreamReader 对象为基础建立的,而这个对象是以System.in为基础建立起来的,然后可以通过br来实现从键盘获取输入,System.in是我们从键盘获取输入的工具。

    这样说可能很难理解,还是举个例子:
    我们修路,需要使用泥土,于是用铁锹来挖泥土,但是我们不能用铁锹来运送泥土,于是用箩筐来运送,但是工程很大,只用箩筐远远不够,于是我们用卡车来装送,这样效率是不是很高了呢?
    BufferedReader就是这辆卡车,InputStreamReader就是箩筐,System.in才是直接获得输入的铁锹。
String str = br.readLine();
    readLine()就是从键盘获取一行输入,可以包含空格的,直到我们敲下回车之前的内容都会保存在str里面,从最终的结果就很容易看出来了。

    再看看我们的main方法,发现后面跟了个throws IOException。这是因为BufferedReader可能会出现一个异常,异常是我们在以后会专门研究的东西,现在写出来只是先熟悉一下,还是拿刚才的例子来解释这个异常:
    我们的卡车可能在路上要经过一个桥,桥的载重是5t,但是我们的卡车却运了8t的东西,这个时候就会出现异常,于是我们事先声明:我们的车在路上可能会出现异常,要用的话出了问题就与我无关了。
    同样,我们的BufferedReader可能会出现问题,我们事先在这里申明了,就如在烟盒上写个:吸烟有害健康一样。
    当然,一般来说出异常不是那么容易的,只要我们认真处理,还是可以放心使用的。
    好的,那我们到底用什么获取输入呢,Scanner还是BufferedReared?暂时还是用Scanner吧,看起来BufferedReader很麻烦,而且在后面还有一种情况很难获得输入,但是我们要知道在后面有一个专门的章节来研究输入输出,而所研究的内容都是BufferedReader的亲戚朋友,而且今后我们还可以用这样的流来读取文件内容、把内容写到文件里面去,这些都是Scanner做不到的。
    当然我们肯定不会满足于只是写一些东西让显示器显示给我们,所以我们再研究一下用JAVA去做做算术吧,计算两个数的和、差、积、商。

public class Count{
     public static void main(String[] args){
         int i = 9527;
         int j = 4527;
         int m = i - j;
         System.out.println(m);
         m = i*j;
         System.out.println(m);
         m=i+j;
         System.out.println(m);
         m=i/j;
         System.out.println(m);
     }
 }